一、原题:
(1)提示:弱密码top1000?z?????
(2)原网页:
二、步骤:
1.先打开BP,随便输入一个密码:
2.打开BP,发现password,发送至intruder:
3.进行字典爆破:
(1)设置变量:
(2)导入字典:
(3)开始攻击:
(4)攻击完毕,发现长度均相同:
4.查看Response发现:
源码分析:
// 定义一个对象 r,其中包含一个属性 code,值为 'bugku10000'var r = {code: 'bugku10000'}// 判断对象 r 的 code 属性是否等于 'bugku10000'if(r.code == 'bugku10000'){// 如果条件为 true,执行以下代码// 在控制台输出 'e',用于调试或记录信息console.log('e');// 查找 HTML 页面中 ID 为 'd' 的元素,并将其内容设置为 "Wrong account or password!"document.getElementById('d').innerHTML = "Wrong account or password!";}else{// 如果条件为 false,执行以下代码// 在控制台输出 '0',用于调试或记录信息console.log('0');// 将页面重定向到 success.php,并附带查询参数 code,其值为 r.codewindow.location.href = 'success.php?code='+r.code;}
5.在Grep-Match中添加{code: 'bugku10000'}字段后,开始攻击
6.爆破完毕后发现:
正确密码的响应:
错误密码的响应:
7.输入密码zxc123,获取flag:
三、思路:
此题关键:字典爆破、代码审计、Grep-Match过滤技术