一、什么是token
在身份认证和授权系统中,Token 是一种由服务器生成的字符串,用于验证用户的身份和权限。当用户登录成功后,服务器会生成一个 Token 并返回给客户端。客户端在后续请求中携带该 Token,服务器通过解析 Token 来验证用户身份。这种机制的优点包括无状态性、跨域通信能力和灵活性。
每次请求时,Token 的值都会发生变化,类似于 MD5 的盐值机制。这种动态变化使得即使攻击者捕获了某个请求的 Token,也无法通过重放攻击再次使用该 Token,因为它的值已经失效。
即使攻击者通过暴力破解获取到账号和密码,由于 Token 的值在每次请求中都会变化,攻击者无法通过固定的 Token 进行验证。这种机制大大增加了攻击的难度。
二、burpsuite绕过token限制
1.抓包
Pikachu靶场的暴力破解模块中的防token。
先输入账户密码登陆,然后抓包发送到重放器模块,发现第一次发包提示的是密码错误
,而第二次发包则提示token错误
2.添加宏
打开设置,选择sessions
点击宏
的添加选择带有
token
值的URL
接着点击项目设置
,选择添加
然后定义token
的值,让burpsuite在后续的爆破中自动生成选中token的value值,定义参数位置就会跟着变化,十分方便
完成自定义参数后,就会显示
后续一直点击确认即可
3.添加规则
打开设置,选择sessions
点击会话处理规则
的添加
选择运行宏
选择前面配置的宏
,并且仅更新特定参数,参数名为token
的name值
接着,我们进行范围的配置。因为token值的绕过
主要应用在重放模块
和爆破模块
,并且为方便选择的是所有URL
4.验证效果
无论重发多少次,都不会提醒token错误,说明配置成功
5.配合爆破
我们实现token的绕过后,我们就可以配合爆破模块
进行爆破了。
添加payload位置
并且选择合适的爆破模式
然后在payload处载入字典。紧接着,因为token
是会发生变化的,一次请求是一个特定且唯一的token
,所以最大请求次数为0。
最大并发数为1
注意,重定向
要选择,因为在爆破过程中,如果重定向不被允许,那么无论能否登录成功,基本都会返回302状态码,所以要设置为总是
ok,设置完后开始爆破。为了速度,我并没有载入字典进行爆破,只是简单的选择数字,但这不影响我们想要的结果。我们可以看到所有返回的数据包都是正常的,并没有出现token错误的提示,验证我们的爆破成功绕过token的限制
原文始发于微信公众号(泷羽Sec-Z1eaf):Burpsuite之token绕过
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论