Dvwa burpsuit 攻击
- Low 等级
查看low等级的源码可以发现php编写的代码中对于login和password两个选项框中对于username是明文获取、password是使用一个md5加密获取并且对于两个没有加以限制所以我们有两个思路可以进行攻击。
第一种,基于我们知道了用户的用户名而不知道密码情况,我们可以选择SQL注入利用布尔盲注的方式实现登录(当然上述方式是贴合result的内容构造的):
第二种,当我们对于用户的用户名和密码都不知道的情况下,使用burpsuite工具来直接对它进行爆破处理,因为它没有对输入进行任何限制:
首先打开firefox的代理
然后打开抓包工具进行抓包,可以看到我们没有输入任何信息
选择将其发送至intruder模块中进行payload的暴力破解
当然我们是对两个需要破解的地方——username、password进行破解所以我们只需要将这两个地方添加payload位置,而且对于攻击类型我们需要选择pitchfork或者是clusterbomb:
然后在网上下载一些常用的用户密码表将其导入就可以进行攻击了:
为了方便我就导入了小段方便破解
然后看到有一个长度不同选择查看,看response的渲染可以看到出现登陆成功即该用户密码是正确的
- medium等级
同样的对它的源码进行分析可以看到这次它对于两个都进行了输入检测所以第一种情况下的SQL注入将不能使用。
所以我们只能使用爆破攻击的方式来进行了,当然可以看到在下面查询中php加上了一个限制即当登录失败时将sleep(2)增加了爆破成功的时间增加了成本
但是该爆破还得爆破
同一一致查看长度不一样的地方,看到页面渲染的地方登录成功,即该用户密码为正确密码,上述过程中可以选择多线程并发提速进行。
- high等级
查看源码发现相对于medium等级high等级多了一个Token的内容,token是一个动态的值能够进一步防止攻击者使用burpsuit使用简单爆破就将其破解了
所以破解的时候我们需要将user_token也考虑进破解的内容中,并且在攻击类型中选择交叉pitchfork的payload
然后我们还需要递归构建生成的token值,对它进行匹配工作,该部分内容则可以在options中提取相应的位置进行
完成上述操作就开始进行爆破攻击,与前两个一样查看lenth值然后看看response的页面渲染或者是Raw来判断,可以看到确实破解成功了。
- impossible等级
查看源码可以看到该级别的代码加上了更加严格的防爆破机制,在继承前三个等级的保护措施下还进行了采用了更为安全的PDO(PHP Data Object)机制。即输入错误会进入等待时间。