JWT安全:假密钥.【签名随便写实现越权绕过.】

JWT安全:假密钥【签名随便写实现越权绕过.】

JSON Web 令牌 (JWT)是一种在系统之间发送加密签名 JSON 数据的标准化格式。理论上,它们可以包含任何类型的数据,但最常用于在身份验证、会话处理和访问控制机制中发送有关用户的信息("声明")。
与传统会话令牌不同,服务器所需的所有数据都存储在客户端的 JWT 本身中。这使得 JWT 成为高度分布式网站的热门选择,因为用户需要与多个后端服务器无缝交互。

目录:

JWT安全:假密钥【签名随便写实现越权绕过.】

实战案例:签名随便写可以绕过【实现越权】

[1. 使用普通用户进行登录.](#1. 使用普通用户进行登录.)

[2. 修改JWT数据中的签名信息,实现越权.](#2. 修改JWT数据中的签名信息,实现越权.)

(1)修改第一个地方,访问管理员页面.

(2)修改第二个地方进行测试.

(3)测试完成之后修改一下这个,后面实战中用来替换.

[3. 实战中的应用测试.](#3. 实战中的应用测试.)

(1)把上面复制的JWT数据用来替换,正常申请的数据包.


JWT 格式:头【签名的算法】.具体内容【修改字段】.签名

漏洞的产生:开发为了省事,没有按规定的去走,所以产生了漏洞.


理解:把cookie字段变成了这个JWT字段,用这个去验证用户身份.

(1)使用base64编码进行录进来的

(2)三个字段是使用用点 . 分隔

(3)字段最后面的签名是用来验证用户信息的


Burp Suite 插件的安装.

实战案例:签名随便写可以绕过【实现越权】

靶场链接:https://portswigger.net/web-security/jwt


1. 使用普通用户进行登录.


2. 修改JWT数据中的签名信息,实现越权.【从普通用户改个管理员用户】

(1)修改第一个地方,访问管理员页面.【把这个修改为管理员的页面URL】

(2)修改第二个地方进行测试.【把普通用户直接修改为管理员用户】【administrator】

解释说明:如果可以直接登录成功,说明他不验证 JWT 中的签名,导致存在这个漏洞 实现越权。


(3)测试完成之后修改一下这个,后面实战中用来替换.

3. 实战中的应用测试.

(1)把上面复制的JWT数据用来替换,正常申请的数据包.【JWT数据是用户身份】

注意:替换全部包中的JWT数据和访问页面.


相关推荐
大锦终15 小时前
【Linux】高级IO
linux·服务器·网络·c++
dualven_in_csdn16 小时前
【AI编程】国内AI编程工具的选择
安全
算法如诗16 小时前
**MATLAB R2025a** 环境下,基于 **双向时间卷积网络(BITCN)+ 双向长短期记忆网络(BiLSTM)** 的多特征分类预测完整实现
开发语言·网络·matlab
我是好小孩16 小时前
【Android】RecyclerView的高度问题、VH复用概念、多子项的实现;
android·java·网络
拾忆,想起16 小时前
Dubbo监控中心全解析:构建微服务可观测性的基石
java·服务器·网络·tcp/ip·微服务·架构·dubbo
byte轻骑兵17 小时前
【安全函数】C语言安全字符串函数详解:告别缓冲区溢出的噩梦
c语言·安全·面试
聚梦小课堂17 小时前
2025.11.16 AI快讯
人工智能·安全·语言模型
金士镧(厦门)新材料有限公司17 小时前
稀土氧化物:材料科技中的“隐形力量”
科技·安全·全文检索
侯小啾17 小时前
VMware-ubuntu网络配置
网络·ubuntu·智能路由器·vmware·虚拟机
Nimsolax18 小时前
Linux网络DNS与ICMP
linux·网络