基于表单的暴力破解
Burp尽量使用正版,
靶场环境 pikachu pikachu: 皮卡丘靶场,网络安全练习平台
https://github.com/zhuifengshaonianhanlu/pikachu
输入任意尝试
使用burp抓包清除默认payload,手动添加payload,发送给攻击器,选择第四个攻击方式
四种攻击可参考:https://blog.csdn.net/huilan_same/article/details/64440284
设置好1和2 的配置文件(字典),也可手动添加
看到了结果,相应长度明显不一样,输入admin 123456 登录成功
验证码绕过(on server)
可以看到验证码调用的是后端showvcode.php代码完成
的图片,因此只改变用户名和密码,虽然报错,但验证码可反复重复使用,还是老样子发送到攻击模块
测试成功admin 123456 因此和第一个也就多了一个验证码php图片验证。基本一样
验证码绕过(on client)
验证码通过前端js完成,
查看验证码有
createCode函数
往下找,有定义。是选择数组里面5个组合完成
反复尝试了一线,发现无论输入错误验证码,或者为空,都返回用户域名username or password is not exists~(用户名或密码不存在)此时验证码就不起作用了,验证码完全交给前端,后端并没有验证工作,因此还是只爆破用户名和密码就行了。
剩下的和之前一样,省略一些步骤了,直接看结果
token防爆破
- 客户端使⽤⽤户名跟密码请求登录
- 服务端收到请求,去验证⽤户名与密码
- 验证成功后,服务端会签发⼀个 Token,再把这个 Token 发送给客户端
- 客户端收到 Token 以后可以把它存储起来,⽐如放在 Cookie ⾥或者 Local Storage ⾥
- 客户端每次向服务端请求资源的时候需要带着服务端签发的 Token
- 服务端收到请求,然后去验证客户端请求⾥⾯带着的 Token,如果验证成功,就向客户端返回请求的数据
审计第二次token,尾数0441,再次登录,既下一次token就获取出来了
Burp绕过token,这里选择pitchfork 一对一模式,设置密码和token两个,添加到payload
第二个与HTML的相应界面匹配,第二个payload选择Recursive grep
配置响应包,选中设置标记token的值,然后把重定向设置成always
注意这里的线程数设置为1,不然会显示“递归 grep 有效负载不能与多里面求线程一起使用”报错,因为我这是pro版本,我找了半天,最新的burp都是在Rsource pool里设置。
最终成功爆破