HiitCat/JWT-SecLabs

GitHub: HiitCat/JWT-SecLabs

一套包含 8 个渐进式实验的 JWT 安全漏洞实战演练靶场,通过隔离的 Docker 环境帮助安全从业者动手掌握各类 JWT 攻击向量与防御技术。

Stars: 1 | Forks: 0

JWT SecLabs **一个用于学习 JWT 漏洞的实操演练场。** 破坏它。理解它。做得更好。 [![Labs](https://img.shields.io/badge/labs-8-blue?style=flat-square)](.) [![Docker](https://img.shields.io/badge/Docker-ready-2496ED?style=flat-square&logo=docker&logoColor=white)](.) [![License](https://img.shields.io/badge/license-MIT-green?style=flat-square)](LICENSE) [![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen?style=flat-square)](CONTRIBUTORS.md)
## 这是什么? 针对真实的(有缺陷的)身份验证代码的实战利用。 每个实验室都是一个独立的 Docker 应用,端到端地教授一种 JWT 攻击向量:阅读漏洞原理,运行漏洞利用,获取 flag。 ## 实验室 | 名称 | 漏洞 | 难度 | |------|--------------|:----------:| | [Blind Trust](./1-blind-trust/) | 未验证的 JWT 签名 | 🟢 简单 | | [Voiding The Rules](./2-voiding-the-rules/) | `alg: none` 绕过 | 🟢 简单 | | [Secrets Under The Rug](./3-secrets-under-the-rug/) | 弱 HMAC 密钥 | 🟡 中等 | | [Chameleon Hashes](./4-chameleon-hashes/) | RS256 -> HS256 混淆 | 🟠 困难 | | [Wrong Turn](./5-wrong-turn/) | `kid` 头部路径遍历 | 🟠 困难 | | [Trojan Keys](./6-trojan-keys/) | JWK 头部注入 | 🔴 专家 | | [Puppet Master](./7-puppet-master/) | JKU 头部注入 | 🔴 专家 | | [Shadow Key](./8-shadow-key/) | 算法混淆 + 公钥恢复 | 🔴 专家 | ## 快速开始 ``` cd docker build -t . docker run -p 3000:3000 # 打开 http://localhost:3000 ``` 每个实验室的 README 都包含具体的操作说明、提示以及完整的解决方案演练。 ## 前置条件 - [Docker](https://docs.docker.com/get-docker/) - 一个浏览器 - 一点好奇心 ## 学习路径 按顺序完成这些实验室 —— 每一个都在前一个的基础上构建: 1. **[Blind Trust](./1-blind-trust/)** - JWT 签名从未被验证;你可以修改任何你想要的声明 2. **[Voiding The Rules](./2-voiding-the-rules/)** - 将 `alg` 设置为 `none` 并完全移除签名 3. **[Secrets Under The Rug](./3-secrets-under-the-rug/)** - 离线破解弱 HMAC 密钥,伪造管理员 token 4. **[Chameleon Hashes](./4-chameleon-hashes/)** - 混淆 RS256 服务器,使其接受使用公钥签名的 HS256 5. **[Wrong Turn](./5-wrong-turn/)** - 通过 `kid` 遍历文件系统,使用空密钥进行签名 6. **[Trojan Keys](./6-trojan-keys/)** - 将你自己的公钥嵌入到 token 头部,绕过密钥库 7. **[Puppet Master](./7-puppet-master/)** - 将 `jku` 指向你自己的 JWKS 服务器,使用你自己的密钥进行签名 8. **[Shadow Key](./8-shadow-key/)** - 从两个签名中恢复隐藏的 RSA 公钥 (sig2n),然后进行伪造 ## 贡献 欢迎提交 PR。有关指南,请参阅 [CONTRIBUTORS.md](./CONTRIBUTORS.md)。
标签:alg:none, CISA项目, Docker, JKU注入, JWK注入, JWT, JWT安全, KID遍历, MITM代理, OPA, RSA密钥恢复, Web安全, Web安全靶场, 安全培训, 安全实验, 安全漏洞, 安全防御评估, 数据可视化, 漏洞复现, 算法混淆, 网络安全, 蓝队分析, 请求拦截, 身份验证绕过, 隐私保护, 靶场, 黑客攻防