“暴力破解”是一攻击具手段,在web攻击中,一般会使用这种手段对应用系统的认证信息进行获取。 其过程就是使用大量的认证信息在认证接口进行尝试登录,直到得到正确的结果。 为了提高效率,暴力破解一般会使用带有字典的工具来进行自动化操作。
基于表单的暴力破解
当发送请求时,会将 § 标识的参数替换为Payload。
sniper 是狙击手的意思,在联系中给多个 § ,攻击中单次请求只会改一个标识
根据Length长度(我猜是response的长度)不同的那个一个应该就是正确密码,密码为123456
这次练习实际上是在已知用户名(username)的情况下进行的。
PS.在Intruder ->Payloads ->Payload Options 中可以修改线程的数量(加快运行速度?)
Intruder ->Payloads ->Payload Sets中的Paload set 的数量取决于你 § 的数量
根据(21条消息) burpsuite response返回中文乱码问题_M1mory的博客-CSDN博客更改后没有效果。
验证码绕过(on server)
随便输入 账号密码,登录抓包,右键发送到Intruder模块,先发到repeater重发器重放
多尝试几次发现验证码可重复使用,可以直接爆破。
直接放入Intruder模块爆破即可,不要在Proxy->Intercept模块放包后刷新页面,因为刷新页面后后台服务端的验证码也会随之刷新,从而使上一次验证码失效,导致爆破不了。
剩下的步骤和上面的一样。
验证码绕过(on client)
查看前端代码,我们可以发现前端验证码使用的是前端js脚本生成的
在浏览器中禁用JavaScript(详情百度)。
刷新页面,验证码就消失了,就可以继续爆破了。
Token防爆破
查看源码我们会就会发现,每次请求里面都会加上token的值,所以如果我们爆破的话,每次爆破,都要有三个参数,分别是username,password,token. username我直接是设置为admin.
使用burpsuite进行暴力破解
抓取数据包可以看到请求头中有token参数,重放两次数据报后会提示token错误
通过测试发现每个数据包的token在变化,尝试使用pitchfork进行爆破
具体设置如下:
选择pitchfork进行爆破,添加密码和token变量
在 Intruder ->Options -> GREP-Extract中获取响应包,从中提取参数。选中token值,这个时候工具会自动编辑规则,复制token值备用,点击ok。
在页面最底部找到always选项.
回到payload模块,正常添加第一个变量密码的字典。
第二个变量选择递归搜索(Recursive grep)
结果
(不知道为什么前面两个的Payload2是空白的。。╮(╯▽╰)╭)
第二种方法,通过burpsuite截断信息,我们可以获取cookie及post提交的字段信息;
根据获取到的信息编写Python脚本