基于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.暴力就完事

  做完一切准备工作了,开始爆破

  可以看见显示爆破成功。


基于token防爆破的暴力破解
https://one-null-pointer.github.io/2022/08/01/基于token防爆破的暴力破解/
Author
liaoyue
Posted on
August 1, 2022
传送口