暴力破解
低级
因为等级比较低,我们上来直接抓包暴力破解:
选择攻击模块
分别为变量1,2选择字典,这里是我手工创建了两个简单的账号密码字典load直接导入,直接添加其他方法都行
成功
中级
我们查看一下源代码,对比低级别发现做了限制如下
mysqli_real_escape_string()函数:会对特殊符号(\x00,\n,\r,\,‘,“,\x1a)进行转义,作用是抵御了SQL注入
sleep( 2 ):这个意思就是如果登录失败的话,就会延迟两秒后才能提交。
总结:
虽然在Medium级别中做了过滤、转义安全措施,但利用在low级别中的爆破方法还是能爆破成功的,只不过时间比之前长一点,对暴力破解并没有卵用,直接和low级别做法一样暴力破击,这里我就不演示了,直接看上面。
高级
查看high级别的源代码
发现它在Medium级别的安全措施基础上增添了多个安全措施如下:
stripslashes()函数可以用来去掉反斜线字符("\");
Anti-CSRF token用来随机生成token值发送到后台验证登录信息是否正确。
使用了Anti-CSRF token来抵御CSRF的攻击
使用了stripslashes函数和mysqli_real_esacpe_string来抵御SQL注入和XSS的攻击
抓包发现
在每次登录时增加了token验证,在每次登录时都要进行token验证,所以我们可以去获取这个token值,在爆破的同时一并提交该值,这样就能爆破成功。
爆破
攻击类型选择:Pitchfork
pitchfork模块只能选择两个模块,在这里我们就直接选择密码,和token这两个变量
option设置
playload
爆破
这里可能你会有疑问为啥有两个password一个成功一个失败,因为我把password放在了第一个,加入token验证爆破时前两个token没有,所以我在最后面又补了password。
impossible
查看源代码分析得出:
通过源代码可以看到,impossible级别在high级别的基础上对用户登录次数进行了限制,当用户登录失败3次后,后台就会锁住账号,在15分钟之内无法进行任何的操作,同时它也采用了更为安全的机制来抵御SQL注入。
这其实是对暴力破解的最有效防御,一般无法破解。