很显然这道题需要我们用burpsuite进行爆破
然后我们就随机输入密码123456然后使用burpsuite进行抓包如下
抓到包后我们需要点击鼠标右键发送到Intruder进行爆破。
这里它自动认为“admin"和"123456"都是需要爆破的地址,但题目已经给出用户名,所以我们就需要手动取消admin的框选。
然后我们点开下面这个页面
根据题目给出的提示:
就知道我们需要用这个"弱密码top1000"进行爆破密码
我们点击"Load..."添加"弱密码top1000"
注意:我们需要取消下面这个选项的框选
然后进行爆破
经过攻击,我们发现很奇怪返回结果长度都一致, 是不是字典有问题,还是说长度不管怎样都是一样
但换了几次字典结果依然是这样,所以我们猜测正确和错误返回的长度可能确实是一样的于是我们检查一下返回的代码,发现一段js代码,若r值为{code: 'bugku10000'},则会返回错误
{ 通过这一句“window.location.href = 'success.php?code='+r.code;”,可以判断网页将跳转到以code作为参数的success.php页面。其中code的值来自于var r = {code: 'bugku10000'}。
至此,可以考虑用burp进行爆破。但通过第一次爆破过程中所以返回页面长度一致,可以判断code值的长度与'bugku10000'相同,也是10。考虑到对于10个字符长度进行爆破需要的时间太长,因此现在以code为参数爆破是不可行的。
因为code是success.php页面的参数,因此在登录页面当使用正确密码时,code的值(r.code)应该与'bugku10000'不同,进而r的值也与{code: 'bugku10000'}不同。
也就是说,如果我们输入正确的密码,返回页面的r将不是{code: 'bugku10000'}。
因此可以在burp的intruder爆破模块中,使用{code: 'bugku10000'}对返回包内容进行筛选。找到返回包不含有{code: 'bugku10000'}的,就可能是使用正确的密码。}
————————————————
版权声明:本文为CSDN博主「Dddddddddddd.」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/DdddddXxxxx/article/details/118811482
所以可以利用这点,在option模块加上该匹配
重新开始爆破,得到结果如下
返回网页输入密码"zxc123"即可得到Flag