tierChampion/POC_CVE-2015-9235

GitHub: tierChampion/POC_CVE-2015-9235

演示 JWT 算法混淆攻击的 POC 项目,通过将 RSA 公钥作为 HMAC 密钥伪造令牌实现权限提升。

Stars: 0 | Forks: 0

# CVE-2015-9235 针对 Json Web Token (JWT) 库的算法混淆攻击演示。JWT 通常用于 cookie 中以认证用户会话,因此这种攻击具有关键性。本演示使用了 node 模块 `jsonwebtoken@4.0.0` 来展示该漏洞。 这个项目也是一次很棒的氛围编程活动,因为除了 API 调用之外,前端几乎完全由 LLM 完成。 ## 漏洞说明 JWT 的格式如下: ``` b64(header).b64(payload).b64(signature) With in our case: header = (algorithm, type) payload = (username, role) ``` 当时,各种 JWT 库虽然可以使用某种算法进行签名,但并未强制执行特定算法,而是依赖于 JWT 头部的内容,从而允许用户决定自己的加密方式。这导致了许多漏洞利用,但本例中使用的方法如下: 1. 后端使用其私钥创建带有 RSA 256 签名的 JWT 2. 攻击者从后端获取公钥,这是一个完全正常的用例 3. 攻击者使用公钥作为密钥,利用对称算法(本例中为 HMAC SHA-256)伪造自定义 JWT,同时将头部中的算法设置为 HS256 4. 后端通过使用其公钥进行 HS256 验证来校验 JWT,结果令牌通过验证! ## 演示步骤 在登录页面以任意用户身份进行认证。您需要先注册。 进入主页后,会有一个按钮,只有当您拥有有效的 admin 会话时才能点击。接下来,您需要运行漏洞利用程序来伪造这个 JWT。 最后,在 local storage 中用伪造的 JWT 替换原始 JWT,刷新后,该按钮应该变为可点击状态,flag 就是您的了!
标签:CVE-2015-9235, DLL 劫持, GNU通用公共许可证, HMAC, jsonwebtoken, JWT, LLM, MITM代理, Node.js, RSA, Unmanaged PE, Web安全, 前端安全, 协议分析, 大语言模型, 数据可视化, 权限提升, 漏洞演示, 算法混淆攻击, 网络安全, 自定义脚本, 蓝队分析, 身份验证绕过, 隐私保护