在今年4月17日,本公众号发过一篇关于 JWT 的文章,未学习过或稍有遗忘的朋友可以点击跳转:JWT基础知识及攻击方式详析
现分享一个与 JWT 有关的漏洞挖掘案例。
前言
我在某公共漏洞奖励计划的应用程序API中发现了两个关键漏洞,这些漏洞严重危及用户数据和账户安全。第一个漏洞允许通过未受保护的API端点获取未经授权的用户敏感数据,第二个漏洞则利用了弱加密的JSON Web Token(JWT)密钥,使攻击者能够冒充用户执行敏感操作。
漏洞1
第一个漏洞涉及一个不安全的API端点(/api/v1/redacted1/redacted2/:id),该端点暴露了用户的敏感信息。攻击者只需发送带有有效订单ID的GET请求,即可以JSON格式获取详细的用户信息。此漏洞暴露了超过16万用户的个人数据,暴露的数据包括:
用户ID
电子邮件地址
账户状态(免费或付费域名)
账户示例名
订阅详情
交易ID
支付状态
关联的配置文件名
通过修改用户的orderID,利用此不安全的直接对象引用(IDOR)漏洞即可获取他人的数据。
漏洞2
第二个漏洞涉及应用程序使用了弱加密的JWT密钥。我使用 jwt-cracker 工具破解 JWT 令牌并找到了有效的“密钥”:
接着,我首先使用密钥解密了我请求包中的加密JWT信息,随后将ID更改为受害者的ID,并重新用密钥加密,最后发送修改后的请求包:
我利用破解出的密钥和获取的用户ID,可以生成160,000多个用户的授权令牌。接着,我可以使用令牌进行通过API执行任意操作,如编辑用户、查看用户、删除用户等:
修复建议
1、使用适当的认证机制限制对敏感数据的访问。
2、更换JWT密钥,确保密钥具有足够的强度来签名令牌。
原文出处:https://aswinthambipanik07.medium.com/idor-chained-with-jwt-token-cracking-leads-to-edit-view-and-deletion-of-160000-user-accounts-65e65e6dc1f1
原文始发于微信公众号(玲珑安全):IDOR与JWT令牌破解相结合,实现编辑、查看和删除数万帐户
- 左青龙
- 微信扫一扫
- 右白虎
- 微信扫一扫
评论