文章总结: 本文分享了在Bugcrowd漏洞挖掘中发现的关键JWT漏洞。作者发现系统存在算法混淆缺陷,通过将JWT签名算法从RS256修改为HS256并篡改role字段为admin,成功伪造令牌获取管理面板权限。该漏洞导致严重的权限提升与数据泄露风险,最终被定为P1级并获高额赏金。 综合评分: 90 文章分类: WEB安全,漏洞分析,SRC活动,渗透测试
0123.我是如何通过 JWT 操纵非法获取组织管理面板访问权限的 $$
原创
Ashish Yadav Ashish Yadav
Rsec
2026年1月27日 09:31 贵州
本文章仅用网络安全研究学习,请勿使用相关技术进行违法犯罪活动。
声明:本文搬运自互联网,如你是原作者,请联系我们!
类型:JWT
大家好,
我是 Ashish Yadav,一名漏洞赏金猎人。这是我的第二篇博文。今天,我将分享我在 Bugcrowd 私有项目中发现的第一个关键漏洞。
概述
什么是 JWT?
#
JSON Web Tokens (JWT) 是一种用于在系统之间发送加密签名 JSON 数据的标准化格式。理论上,它们可以包含任何类型的数据,但最常用于发送有关用户的信息(“声明”),作为身份验证、会话处理和访问控制机制的一部分。
与传统的会话令牌不同,服务器所需的所有数据都存储在客户端的 JWT 本身中。这使得 JWT 成为高度分布式网站的热门选择,因为用户需要与多个后端服务器无缝交互。
JWT 的结构
JWT 的结构由三部分组成:
头部: 头部通常由两部分组成:令牌类型(即 JWT)和所使用的算法(例如 RS256、HS256)。JWT 的第一部分采用 Base64Url 编码。
{ "alg": "RS256", "typ": "JWT"}
有效载荷: JWT(JSON Web Token)有效载荷是令牌的第二部分,它是一个 JSON 对象,包含经过 Base64Url 编码的“声明”(关于用户/数据的陈述),其中包含用户 ID、角色或过期时间等信息,这些信息对于授权至关重要,但并未加密,因此必须避免包含敏感数据,因为它很容易被读取。它与标头和签名一起,是服务器验证令牌真实性和用户权限的关键组件,无需进行数据库查询。
{ "sub": "12345", "email": "[email protected]", "role": "user", "iat": 1710000000, "exp": 1710003600}
签名: 签名用于验证 JWT 的发送者是否与其声称的身份相符,并确保消息在传输过程中未被篡改。要创建签名,需要将 Base64 编码的头部和有效载荷以及一个密钥一起,使用头部中指定的算法进行签名。
signature = sign( base64url(header) + "." + base64url(payload), secret_or_private_key)

JWT 结构
JWT 授权中的漏洞
当我开始在 Bugcrowd 上搜索一个私有程序时,侦察过程中我发现了一个子域名。假设子域名是 target.example.com。
然后,我开始在这个子域名( https://target.example.com/ )上搜索。2-3 小时内,我报告了 4 个 P4 级别的程序漏洞,然后切换到另一个程序,开始搜索。
大约在午夜到凌晨 3 点之间,我再次开始在这个子域名( https://target.example.com/ )上搜索,并发现了未经授权的管理员面板访问权限。
重现步骤:
-
使用任何有效的电子邮件地址和密码,在 https://target.example.com/ 创建一个账户。
-
请使用邮件验证链接验证账户。
-
使用有效凭据登录,并使用 Burp Suite 拦截登录请求。
-
现在,在请求中执行拦截 > 对此请求的响应。
-
在登录响应中,找到响应正文中的 JWT 令牌。
-
现在,复制 JWT 令牌,访问 https://jwt.io 并粘贴 JWT 令牌。
-
修改有效载荷:——将 “role”:”user”更改为”role”:”admin”。
-
在 JWT 标头中,将算法从 “alg”:”RS256″更改为”alg”:”HS256″。
-
将生成一个新的 JWT 令牌。复制伪造的令牌。
-
现在,在 Burp Suite 中,拦截原始响应或发出经过身份验证的请求,并将响应正文中的原始 JWT 替换为伪造的 JWT。
-
转发请求。
-
您将获得管理员面板的访问权限,确认权限提升成功。
管理员面板接管的概念验证
安全影响: 成功利用此 JWT 配置错误和算法混淆漏洞,攻击者无需有效的管理员凭据即可将权限从普通用户提升至管理员。这可能导致个人身份信息 (PII)、机密记录或内部系统数据泄露。
之后,我未经授权访问了组织的管理后台。我提交了一份报告,并上报给了 Bugcrowd。随后,Bugcrowd 验证了该漏洞,并将其评级为严重(P1),同时支付了我四位数的赏金。
4位数赏金
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:Rsec Ashish Yadav Ashish Yadav《0123.我是如何通过 JWT 操纵非法获取组织管理面板访问权限的 $$》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。









评论