基于token防爆破的暴力破解
基于token防爆破的暴力破解
前言:token防爆破原理
① 当客户端发送请求时,服务器会对用户信息使用HS256算法及密钥进行签名,再将这个签名和数据一起作为Token一起返回给客户端
② 服务器不保存Token,客户端保存Token
③ 当客户端再次发送请求时,在请求信息中将Token一起发给服务器
④ 服务器用同样的HS256算法和同样的密钥,对数据再进行一次签名,和客户端返回的Token的签名进行比较,如果验证成功,就向客户端返回请求的数据
简单来说,就是在High里面添加了一个token,用户每次访问改密页面时,服务器会返回一个随机的token,向服务器发起请求时,需要提交token参数,而服务器在收到请求时,会先检查token,只有token正确,才会处理客户端的请求。
1.打开登录界面
可以看见没有验证码:
2.输/入账号密码查看反馈情况
用户密码输入错误情况:
简单暴力破解的情况:
3.使用burp进行抓包
可以看见在数据包中存在token的使用来防止暴力破解,结合原理和前面的反馈,我们可以得知taken是每次提交都会发生变化的,所以如果我们想进行暴力破解的话要不就是把token给弄掉,要不就是每次破解自动获取新的token,当然第一种方法不现实(不攻击服务器没权限的话),所以我们尝试第二种办法。
4.设置字典
记住一定要forward数据包,在history中送到intruder板块,不然后面在设置Options递归内容的时候就看不到回应包的内容!!!!!!!!!!
(淦,我就吃了这个亏,一直没找到原因,我是傻呗!)
设置用户名和密码字典:
5.设置token的循环模式
而token这里把type值修改为Recursive grep,也就是递归模式(也就是接着上一个的服务器个id值一直接力下去)
在Options设置递归内容,要复制token此时的value内容
复制到对应地方,位置就是在type值修改为Recursive grep的界面往下拉
6.设置线程数量
必须把number of threads(线程)设置为1(因为,每次都需要去查看token的值,所以一次发一个,并且查看一个token)我用的burp pro 所以在Resource Pool里面设置,在burp版本中是在Options中设置,自己看着来吧。
然后在Options中设置始终追随重定向
7.暴力就完事
做完一切准备工作了,开始爆破
可以看见显示爆破成功。