DVWA-BruteForce

Low

方法1:使用BP直接爆破
方法2:
使用admin' or '1'='1后,密码为空,拼接SQL语句

$query = "SELECT * FROM users WHERE user = 'admin' or '1'='1' AND password = 'd41d8cd98f00b204e9800998ecf8427e';";
在 SQL 中,AND 和 OR 是逻辑运算符,它们的优先级是不同的:AND 的优先级高于 OR。 这意味着,在没有括号的情况下,SQL 会先计算 AND,再计算 OR。
因此修改之后只要username正确,无论password 内容是什么都不影响登陆结果

Medium

和low 级别源代码相比,user 和password 均使用mysqli_real_escape_string 函数做了转义处理,因此使用Low 级别中拼接SQL语句的方式不再有效

Medium登陆失败后会随机等待1~3秒,因此爆破需要的时间更长

使用BP暴力破解的方式可以成功破解用户名密码

High

通过代码审计发现,代码中出现了token 的校验过程,校验不通过会跳转到index.php 页面;而我们需要绕过token 的验证

查看网页源代码,在提交用户名密码的位置发现了user_token的参数,我们可以使用这个token来协助爆破

提取token:
按照如下顺序找到token位置并将其作为提取项;点击重新获取响应,查看是否能够正常获取token的值

如果不能正确获取token,检查重定向设置,确保其为总是;再次尝试重新获取响应应该就能正常了

将密码和token分别设置为payload,其中token 的payload 类型为递归提取,攻击方式为Pitchfork攻击;设置完成后即可爆破成功

posted @ 2025-04-03 14:38  小圣爱学习  阅读(25)  评论(0)    收藏  举报