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

**一个用于学习 JWT 漏洞的实操演练场。**
破坏它。理解它。做得更好。
[](.)
[](.)
[](LICENSE)
[](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安全靶场, 安全培训, 安全实验, 安全漏洞, 安全防御评估, 数据可视化, 漏洞复现, 算法混淆, 网络安全, 蓝队分析, 请求拦截, 身份验证绕过, 隐私保护, 靶场, 黑客攻防