DVWA全级别之Brute Force(暴力破解) Low Medium High

DVWA全级别之Brute Force(暴力破解)
Low
Medium
High

Brute Force

Brute Force,即暴力(破解),是指黑客利用密码字典,使用穷举法猜解出用户口令

首先我们登录DVWA(admin,password),之后我们看网络是否为无代理,;

 DVWA全级别之Brute Force(暴力破解)
Low
Medium
High

 DVWA全级别之Brute Force(暴力破解)
Low
Medium
High

 确认网络为无代理之后,打开burpsuite

 DVWA全级别之Brute Force(暴力破解)
Low
Medium
High

 然后我们将DVWA网络改为手动代理,

DVWA全级别之Brute Force(暴力破解)
Low
Medium
High

 完成之后在进行操作。

 

 

查看服务器端核心代码;

 DVWA全级别之Brute Force(暴力破解)
Low
Medium
High

可以看到,服务器只是验证了参数Login是否被设置(isset函数在php中用来检测变量是否设置,该函数返回的是布尔类型的值,即true/false),没有任何的防爆破机制,且对参数username、password没有做任何过滤,存在明显的sql注入漏洞

 方法一,爆破利用burpsuite

 第一步抓包,

DVWA全级别之Brute Force(暴力破解)
Low
Medium
High

第二步,ctrl+I将包复制到intruder模块,因为要对password参数进行爆破,所以在password参数的内容两边加$

DVWA全级别之Brute Force(暴力破解)
Low
Medium
High

第三步选中Payloads,载入字典,点击Start attack进行爆破

 DVWA全级别之Brute Force(暴力破解)
Low
Medium
High

 尝试在爆破结果中找到正确的密码,可以看到password的响应包长度(length)“与众不同”,可推测password为正确密码,手工验证登陆成功。

 DVWA全级别之Brute Force(暴力破解)
Low
Medium
High

 

方法二,手工SQL注入

 

Username :admin’ or ’1′=’1    

 Password为空  注入成功;

 DVWA全级别之Brute Force(暴力破解)
Low
Medium
High

 

Username :admin’ #

Password :(空)  注入成功

 DVWA全级别之Brute Force(暴力破解)
Low
Medium
High

 

 

 

 

Medium

查看服务器端核心代码,

 DVWA全级别之Brute Force(暴力破解)
Low
Medium
High

 相比Low级别的代码,Medium级别的代码主要增加了mysql_real_escape_string函数,这个函数会对字符串中的特殊符号(x00,n,r,,’,”,x1a)进行转义同时,$pass做了MD5校验,杜绝了通过参数password进行sql注入的可能性

使用burpsuite进行破解(步骤与LOW一样)

 第一步抓包;

 DVWA全级别之Brute Force(暴力破解)
Low
Medium
High

第二步,ctrl+I将包复制到intruder模块,因为要对password参数进行爆破,所以在password参数的内容两边加$

 DVWA全级别之Brute Force(暴力破解)
Low
Medium
High

 

第三步选中Payloads,载入字典,点击Start attack进行爆破

 DVWA全级别之Brute Force(暴力破解)
Low
Medium
High

 尝试在爆破结果中找到正确的密码

 DVWA全级别之Brute Force(暴力破解)
Low
Medium
High

 

 

High

查看服务器端核心代码,

 DVWA全级别之Brute Force(暴力破解)
Low
Medium
High

High级别的代码加入了Token,可以抵御CSRF攻击,同时也增加了爆破的难度

每次服务器返回的登陆页面中都会包含一个随机的user_token的值,用户每次登录时都要将user_token一起提交。服务器收到请求后,会优先做token的检查,再进行sql查询。

High级别的代码中,使用了stripslashes(去除字符串中的反斜线字符,如果有两个连续的反斜线,则只去掉一个)、 mysql_real_escape_string对参数username、password进行过滤、转义,进一步抵御sql注入。

 通过抓包,可以看到,登录验证时提交了四个参数:username、password、Login以及user_token

DVWA全级别之Brute Force(暴力破解)
Low
Medium
High

 发现增加了user_token参数,所以爆破要选择两个参数来进行,先将请求发送到intruder

 DVWA全级别之Brute Force(暴力破解)
Low
Medium
High

 设置两个参数 passworduser_token为变量,攻击类型选择pitchfork,意思是草叉模式(Pitchfork ——它可以使用多组Payload集合,在每一个不同的Payload标志位置上(最多20个),遍历所有的Payload

 DVWA全级别之Brute Force(暴力破解)
Low
Medium
High

 设置参数,在option选项卡中将攻击线程thread设置为1,因为Recursive_Grep模式不支持多线程攻击,然后选择Grep-Extract,意思是用于提取响应消息中的有用信息,点击Add,如下图进行设置,最后将Redirections设置为Always

 DVWA全级别之Brute Force(暴力破解)
Low
Medium
High

 DVWA全级别之Brute Force(暴力破解)
Low
Medium
High

 写上value=’  点击刷新相应信息   服务器返回的token选中(即value后面,表示每次从响应中获取该值)

 DVWA全级别之Brute Force(暴力破解)
Low
Medium
High

 将这个token 值先记录下来

a5f168e741600adb87c761ac45d016dd

然后设置payload,设置第一个参数载入字典,第二个参数选择Recursive grep,然后将options中的token作为第一次请求的初始值。

 DVWA全级别之Brute Force(暴力破解)
Low
Medium
High

 DVWA全级别之Brute Force(暴力破解)
Low
Medium
High

 点击start attack攻击爆破,结果成功爆破

 DVWA全级别之Brute Force(暴力破解)
Low
Medium
High