目录
1、Token的工作原理
2、Token的目的
3、Token前端回显
4、Token暴力破解
前面学习了越权逻辑漏洞、支付逻辑漏洞、cookie脆弱性导致的逻辑漏洞、response修改导致的逻辑漏洞
今天要学习的是绕过Token相关的知识,这里涉及的知识和案例也是别的大佬总结好的,我只是在这里进行学习+练习ヾ(◍°∇°◍)ノ゙
1、Token的工作原理
基于Token的身份验证是无状态的,我们不会将用户信息存在服务器中。
当第一次登录后,服务器生成一个Token便将此Token返回给客户端,Token是服务端生成的一串字符串,并作为客户端请求的一个身份令牌
以后再登录,只需带上Token请求数据,不需要再次输入用户名和密码
2、Token的目的
为了保护凭据的安全,为了减轻服务器的压力,减少频繁的查询数据库……采用了Token进行身份认证,一般会把token二次保存在cookie或session里面,并且根据cookie和session的过期时间去维护token的过期时间
3、Token前端回显
这里使用pikachu的靶场来进行测试:
进入到靶场后,来到token防爆破?这里
可以看到是一个简单的的登录页面,那么就来尝试在登录的时候抓包看一下有什么可疑的:
可以看到通过重放,token的值直接出现在了响应包中,这时比较危险的,后面我们就可以利用暴力破解来拿到token
4、Token暴力破解
前提条件
如果服务器检测到频繁的错误登录后,就会将该账户锁定,那么就无法再爆破了,而且这个案例的Token值是由前端生成的,也就是说在页面中回显,就像之前提到的客户端回显一样。
相当于这里也需要借助Token回显,而我们在上面的pikachu靶场中就有token回显
简单来说就是第一次登录给你一个token值,这个token值是用于下一次登录的,这样就避免了数据库来回访问对比,而且这里还在数据包中回显了,并且没有加密,就导致这个漏洞了。
首先我们将抓到的数据包发送到Intruder模块中
然后将爆破方式选择如下:
然后再密码和yoken的位置添加payload:
payload1也就是密码简单的设置几个:
pyload2也就是token我们在设置中将重定向设置为仅限范围内:
然后 这里找到检索-提取中—点击添加—点击重新获取形影,找到Token值,双击这个值会自动添加的—点击确认
然后将第二个payload的类型修改为递归提取,然后将刚才获取到的token1放在下面,点击开始攻击
这里攻击提示我们线程数太多,在资源池中进行更该后进行攻击:
可以看到成功的爆破出了token值!!!