HiitCat/JWT-Arsenal

GitHub: HiitCat/JWT-Arsenal

一款完全在浏览器端运行的开源 JWT 漏洞利用工具包,帮助安全从业者在本地安全地伪造、检查和利用各种 JWT 漏洞。

Stars: 1 | Forks: 0

JWT Arsenal Logo # JWT Arsenal **开源的 JWT 漏洞利用工具包 - 专为浏览器构建。** [![Live](https://img.shields.io/badge/live-jwtarsenal.com-84cc16?style=flat-square&logo=cloudflare&logoColor=white)](https://jwtarsenal.com) [![Next.js](https://img.shields.io/badge/Next.js-16-black?style=flat-square&logo=next.js)](https://nextjs.org) [![TypeScript](https://img.shields.io/badge/TypeScript-5-3178c6?style=flat-square&logo=typescript&logoColor=white)](https://www.typescriptlang.org) [![License](https://img.shields.io/badge/license-MIT-a78bfa?style=flat-square)](LICENSE) [![PRs Welcome](https://img.shields.io/badge/PRs-welcome-06b6d4?style=flat-square)](CONTRIBUTING.md) 伪造、检查和利用 JWT 漏洞,**完全在你的浏览器中进行**。 无需后端。数据不会离开你的设备。无需任何设置。 **[→ 打开应用](https://jwtarsenal.com)** · [知识库](https://jwtarsenal.com/knowledge-base) · [速查表](https://jwtarsenal.com/cheatsheet)
## 🎯 什么是 JWT Arsenal? JWT Arsenal 是一个客户端安全工具包,专为需要快速测试 JWT 实现的**渗透测试人员**、**CTF 选手**和**漏洞赏金猎人**设计。所有的加密操作都在你的浏览器中通过 Web Crypto API 和 [jose](https://github.com/panva/jose) 本地运行。数据绝不会被发送到服务器。 该项目还附带了一个**知识库**,其中包含关于每种攻击的深度技术文章——RFC 参考、易受攻击的代码模式、真实的漏洞赏金案例以及缓解措施——让你不仅知其然(按下按钮发起攻击),更知其所以然(理解攻击原理)。 ## ✨ 功能特性 ### 🔍 JWT 检查器 粘贴任意 token 即可获得即时解析结果——解码后的 header、payload、原始签名字节、算法信息和过期状态。这是你每次处理 JWT 时的第一站。 ### ⚔️ 漏洞利用工具 | 工具 | 攻击方式 | |------|--------| | 🔓 **未验证签名** | 服务器解码 token 但从不验证签名 | | 🚫 **Algorithm None** | 使用 `alg: "none"` 剥离签名 - 测试所有大小写变体 | | ⚡ **算法混淆** | 将 RS256 切换为 HS256,使用公钥作为 HMAC 密钥进行签名 | | 🔑 **KID 注入** | 通过 `kid` header 进行路径遍历、SQL 注入和空字节 payload 攻击 | | 📄 **JWK 注入** | 在 JWT header 中嵌入你自己的 RSA 公钥 | | 🌐 **JKU 注入** | 将 `jku` 指向攻击者控制的 JWKS endpoint | | 🔬 **公钥恢复** | 通过 GCD 从两个签名中恢复 RSA 密钥,进而串联至算法混淆攻击 | ### 📚 知识库 8 篇深度技术文章——从 JOSE RFC 系列到 PortSwigger Research 的真实发现——包含可运行的 Python 和 JavaScript 代码示例。 ### 📋 CLI 速查表 随时可复制的命令,适用于 `hashcat`(GPU 破解)、`jwt_tool`、`rsa_sign2n`,以及用于浏览器无法承载的繁重计算任务的 Python 代码片段。 ## 🔒 隐私至上 - **零后端** - 从 CDN 提供静态导出服务,无服务器端代码 - **零遥测** - 无 analytics SDK、无事件追踪、无指纹收集 - **运行时零网络请求** - 所有加密操作均通过浏览器原生的 Web Crypto API 运行 - 可安全粘贴来自实战项目的真实 token,无需担心日志记录 ## 🚀 快速入门 ### 前置条件 - Node.js ≥ 20 - npm ≥ 9 ### 本地运行 ``` # Clone the repo git clone https://github.com/HiitCat/jwt-arsenal.git cd jwt-arsenal # Install dependencies npm install # 启动 dev server npm run dev # → http://localhost:3000 ``` ### 生产构建 ``` npm run build # 静态输出生成在 ./out # 将 ./out 文件夹部署到任何位置 - 无需 server ``` ## 🏗️ 技术栈 | 层级 | 技术 | |-------|-----------| | **Framework** | [Next.js 16](https://nextjs.org) - App Router, `output: 'export'` | | **Language** | TypeScript 5 (strict mode) | | **Crypto** | [jose](https://github.com/panva/jose) + native Web Crypto API | | **UI** | Radix UI primitives + custom design system | | **Fonts** | Inter + JetBrains Mono (self-hosted via Fontsource) | | **Hosting** | Cloudflare Pages | 无后端框架。无数据库。无密钥。无需在服务器端维护任何东西。 ## 📁 项目结构 ``` jwt-arsenal/ ├── app/ │ ├── page.tsx # Homepage - technique grid │ ├── inspect/ # JWT inspector │ ├── exploit/ # Exploit tool pages (one per attack) │ │ ├── alg-none/ │ │ ├── algorithm-confusion/ │ │ ├── jku-injection/ │ │ ├── jwk-injection/ │ │ ├── kid-injection/ │ │ ├── public-key-recovery/ │ │ └── unverified-signature/ │ ├── knowledge-base/ # Technical articles (8 topics) │ ├── cheatsheet/ # CLI command reference │ └── about/ # Legal + project info │ ├── components/ │ ├── layout/ # Sidebar, KbArticle, PageLoader, GithubFab… │ ├── jwt/ # JwtInput, JwtOutput, PayloadEditor, KeyInput │ └── shared/ # GlowCard, CodeBlock, Icons, InfoCallout… │ └── lib/ ├── crypto.ts # RSA/HMAC/ECDSA browser crypto wrappers ├── jwt.ts # JWT encode/decode/forge helpers ├── kbTopics.ts # Knowledge Base metadata └── seo.ts # pageMeta() helper + site constants ``` ## 🤝 贡献 欢迎各种形式的贡献——新的漏洞利用模块、知识库文章、Bug 修复、UI 改进、翻译。我们对此深表感谢。 ### 如何贡献 1. **Fork** 本仓库并将其 clone 到本地 2. 创建一个 **feature branch**:`git checkout -b feat/my-improvement` 3. 进行更改并验证构建:`npm run build` 4. 提交一个 **Pull Request**,并附带对你更改内容及原因的清晰描述 ### 添加新的漏洞利用工具 1. 创建 `app/exploit//page.tsx` - 使用 `ExploitLayout` 作为包装器 2. 在同一文件夹中添加 `layout.tsx`,通过 `pageMeta()` 导出 `metadata` 3. 在 `app/sitemap.ts` 中注册路由 4. 可选择在 `app/knowledge-base//page.tsx` 中撰写一篇知识库文章 ### 添加知识库文章 1. 将主题元数据添加到 `lib/kbTopics.ts`(标题、描述、颜色、标签等) 2. 使用 `KbArticle`、`H2`、`P`、`CodeBlock` 创建 `app/knowledge-base//page.tsx` 3. 在文件顶部通过 `pageMeta()` 导出 `metadata` ## 🗺️ 路线图 本项目处于积极维护中。计划添加的功能: - [ ] 在所有漏洞利用工具中支持 ES256 / ECDSA - [ ] Token 历史记录 - 将检查过的 token 持久化存储在 `localStorage` 中 - [ ] 一键创建临时 JWKS 服务器用于 JKU 测试(通过 serverless function) - [ ] 批量模式 - 单次运行测试多个 token - [ ] 深色 / 浅色主题切换 - [ ] 更多知识库文章 - `x5u`、`x5c`、JWT 混淆链、ECDSA nonce 复用 - [ ] 翻译 - 法语 🇫🇷 有想法?[提交一个 Issue](https://github.com/HiitCat/jwt-arsenal/issues) - 欢迎所有建议。 ## ⚠️ 法律免责声明 JWT Arsenal 专为**授权的安全测试、CTF 比赛和教育教学而设计**。 请勿将此工具用于你不拥有或未获得明确书面授权进行测试的系统。 作者对滥用行为不承担任何责任。完整免责声明请参阅[关于页面](https://jwtarsenal.com/about)。 ## 📄 许可证 [MIT](LICENSE) - 可自由使用、修改和分发。
为安全社区倾注 🧪 打造。 如果 JWT Arsenal 在你的实战项目或 CTF 中为你节省了时间,请考虑给仓库点个 Star - 这有助于其他人发现该项目。 ⭐
标签:Bug Bounty, CISA项目, JSON Web Token, JWT, Maven, TypeScript, URL发现, Web Crypto API, Web安全, 令牌伪造, 可自定义解析器, 安全插件, 安全检测, 客户端工具, 开源安全项目, 数字签名验证, 浏览器端, 漏洞验证, 网络安全, 自动化攻击, 蓝队分析, 隐私保护, 零部署