1.基于表单暴力破解
第一步:设置代理并抓包
打开bp工具,浏览器中设置好代理为burp,开启拦截,输入测试账号密码,点击登录,成功抓包
第二步:发送intruder模块
将数据包右键发送到intruder模块中,选择集束炸弹攻击类型(测试位置>1),先清空位置,在选中目标添加payload
第三步:设置payload参数
点击payload,设置第一个payload位置的参数,自定义输入可能的账号root admin......;第二个payload位置的参数,自定义输入可能密码password 123456......;然后点击开始攻击
第四步:爆破攻击结果
攻击结果中,点击长度,查看与其他数据包长度不同的那一条,就是正确的账号和密码。查看返回包可以发现,该返回结果为登陆成功
2.验证码绕过(on server)
第一步:设置代理并抓包
开启burp代理,输入测试账号密码,这里需要输入正确的验证码,开启拦截,登录,成功抓包
第二步:发送repeater模块
将抓到的数据包发送到repeater重放器当中,测试多次重放后,发现,验证码并未发生改变,说明输入错误并不会引起验证码的变化
第三步:发送intruder模块
将数据包发送到intruder攻击模块中,选择集束炸弹攻击类型,清空payload位置,然后选择测试的账号和密码进行添加payload,注意验证码无需爆破
第四步:设置payload参数
点击payload,设置第一个payload位置的参数,自定义输入可能的账号root admin......;第二个payload位置的参数,自定义输入可能密码password 123456......;然后点击开始攻击
第五步:爆破攻击结果
攻击结果中,点击长度,查看与其他数据包长度不同的那一条,就是正确的账号和密码。查看返回包可以发现,该返回结果为登陆成功,并且验证码依旧没有改变
3.验证码绕过(on client)
第一步:设置代理并抓包
打开bp工具,浏览器中设置好代理为burp,开启拦截,输入测试账号密码,这里输入错误的验证码,点击登录后,发现没有成功抓包,反而在前端页面中弹出提示框,说明是前端校验验证码,未经过后端
尝试输入输入正确的验证码,点击登录后,发现成功抓包
第二步:发送intruder模块
将数据包右键发送到intruder模块中,选择集束炸弹攻击类型(测试位置>1),先清空位置,在选中目标添加payload
第三步:设置payload参数
点击payload,设置第一个payload位置的参数,自定义输入可能的账号root admin......;第二个payload位置的参数,自定义输入可能密码password 123456......;然后点击开始攻击
第四步:爆破攻击结果
攻击结果中,点击长度,查看与其他数据包长度不同的那一条,就是正确的账号和密码。查看返回包可以发现,该返回结果为登陆成功
4.token防爆破
1.token的基本知识
一、Token基础定义
Token = 令牌 / 临时凭证
简单说:
- 服务端生成一串随机字符串
- 发给前端(页面 / 浏览器)
- 前端每次发请求必须带上这串 Token
- 服务端验证 Token 有效才处理请求
- 用过一次就失效 / 定时失效
一句话总结:Token 就是服务端给客户端发的 “一次性临时门票”。
二、Token作用
- 防止暴力猜密码: 每次请求必须带新 Token,暴力脚本无法自动连续发包。
- 防止重复提交: 同一个 Token 只能用一次。
- 防止 CSRF 跨站请求伪造: 攻击者拿不到你的随机 Token,无法伪造请求。
三、Token防暴破的原理
Pikachu 防爆破模块的工作流程:
- 打开登录页面,服务端生成一个 随机 Token,藏在表单里,查看网页源代码
- 你输入账号密码提交
-
- username=test
- password=test
- token=abcd1234
- 服务端做两件事
-
- 验证 Token 是否存在、是否有效
- 验证完 立即销毁这个 Token(一次性)
- 返回新页面 → 生成新 Token
四、为什么能防爆破
- 暴力破解工具(Burp)默认只会重放同一个包
- 但 Token 一次性有效
- 重放 → Token 失效 → 登录失败
- 必须每次先获取新 Token,再发包才能成功
第一步:设置代理并抓包
打开bp工具,浏览器中设置好代理为burp,开启拦截,输入测试账号密码,点击登录后,成功抓包,并在包中发现token
第二步:查看历史响应包
在历史记录中发现连续发的三个包中,前一个响应包生成的token是下一个请求包的token
第三步:发送intruder模块
将数据包右键发送到intruder模块中,选择交叉攻击类型,先清空位置,在选中目标添加payload,这里为了方便验证,假设第一次尝试账户就是正确的(admin)
第四步:设置选项参数
这里需要先设置好正则提取参数,勾选从响应包提取项目,点击添加,查询隐藏的token字段,鼠标勾选token字段,上方自动生成正则表达式,左(自定义)右(正则中提取)二选一即可,点击确定
然后再下面的重定向选项中选中总是跟踪重定向
第五步:设置资源池参数
防止默认并发数为10导致token变化太快,这里设置自定义资源池为并发1
第六步:设置payload参数
设置第一个payload位置的参数,自定义输入可能密码password 123456......;然后点击开始攻击,第二个payload参数设置为递归提取,首次请求初始payload为任意一次页面的token即可
第七步:爆破攻击结果
攻击结果中,点击长度,查看与其他数据包长度不同的那一条,就是正确的账号和密码。查看返回包可以发现,该返回结果为登陆成功