一、原题:
(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过滤技术
