JWT安全:接收无签名令牌.【签名算法设置为none绕过验证】
JWT安全:假密钥【签名随便写实现越权绕过.】
JSON Web 令牌 (JWT)是一种在系统之间发送加密签名 JSON 数据的标准化格式。理论上,它们可以包含任何类型的数据,但最常用于在身份验证、会话处理和访问控制机制中发送有关用户的信息(“声明”)。
与传统会话令牌不同,服务器所需的所有数据都存储在客户端的 JWT 本身中。这使得 JWT 成为高度分布式网站的热门选择,因为用户需要与多个后端服务器无缝交互。
目录:
JWT安全:假密钥【签名随便写实现越权绕过.】
实战案例:签名随便写可以绕过【实现越权】
1. 使用普通用户进行登录.
2. 修改JWT数据中的信息,实现越权.
(1)找一个刚刚登录的数据包,然后发送到Repeater.
(2)修改第一个地方,访问管理员页面.
(3)修改第二个地方进行测试.
(4)把签名算法设置为none
3. 实战中的应用测试.
JWT 格式:头【签名的算法】.具体内容【修改字段】.签名
漏洞的产生:开发为了省事,没有按规定的去走,所以产生了漏洞.
理解:把cookie字段变成了这个JWT字段,用这个去验证用户身份.
(1)使用base64编码进行录进来的
(2)三个字段是使用用点 . 分隔
(3)字段最后面的签名是用来验证用户信息的
Burp Suite 插件的安装.
实战案例:签名随便写可以绕过【实现越权】
靶场链接:https://portswigger.net/web-security/jwt
1. 使用普通用户进行登录.
2. 修改JWT数据中的信息,实现越权.【从普通用户改个管理员用户】
(1)找一个刚刚登录的数据包,然后发送到Repeater.
(2)修改第一个地方,访问管理员页面.【把这个修改为管理员的页面URL】
(3)修改第二个地方进行测试.【把普通用户直接修改为管理员用户】【administrator】
注意:这里就可以发送看看能不能成功了.【如果能成功就是假密钥】
(4)把签名算法设置为none
解释说明:如果直接登录成功,说明他接收无签名令牌,导致存在漏洞 实现越权。
复制一下JWT的数据包,用来登录管理员账号.
3. 实战中的应用测试.