LOW:
用bp抓包后发送至测试器
选择好负载的位置,载入弱口令字典进行穷举,找到回显长度不一样的即是密码
MEDIUM:
查看源代码
发现在登录验证失败后程序将调用函数sleep(2),即增加穷举的消耗时间
用low难度方法即可
HIGH:
查看源代码
和medium相同,同样调用了sleep函数,但high还采用了token来防止直接穷举和csrf攻击
可在burpsuite中添加宏来获取每次发送请求时的token
(宏:一系列操作的抽象集合,在本题中即在每次发送请求前查看网站前端代码寻找token,将token与请求一起发送进行穷举)
在bp中项目选项中的session(会议)选项中选择添加会话处理规则,选择宏生效的网站(注意,宏记录器中显示的是已经抓过包的页面,所以在设置宏之前需先进行一次抓包放包的操作)
选择项目设置,选择到token的参数(不要忘记填写参数名称user_token)
更新参数
选择适用范围
最后进行常规的爆破操作即可,宏会自动获取网页的token
发现password的回显中显示成功信息,故密码是password
反思:在high难度中,在测试字典中相应密码时,爆破成功率居然不是100%(0%意味着宏设置错误,100%则是宏设置正确)。同时,如上图,密码爆破成功意味着宏的设置是正确的,宏确实都在更新获取token,但是其他错误密码的回显既有password incorrect,也有提示csrf攻击(即token不正确),难道获取token值也是有误差的吗?存疑