JWT 攻击者
JWT 攻击者
在浏览器中检测 JSON Web 令牌的已知攻击面并伪造新令牌。
暂无检测结果——请在上方粘贴 JWT。
伪造面板
kid 面板
关于 JWT 攻击者
JWT 攻击者是一款面向安全工程师、渗透测试员、CTF 玩家和代码审查员的浏览器工具。同族的 JWT 解码器 假定令牌格式良好,JWT 创建器 假定用户处于防御方,而 JWT 攻击者不做任何假设:粘贴任何三段 JWT, 即可在一个检测面板中即时看到令牌所暴露的所有已知攻击面。
工具检测的五类攻击
- alg: none 绕过 — 包括任何大小写变体(
None、NONE、NoNe)和任何前导 / 尾部空白。带有alg: none的令牌声明不需要签名;存在漏洞的验证方会原样接受。 - HS256 ↔ RS256 密钥混淆 — 当令牌的 alg 属于 RSA 系列且提供了公钥时,工具会铸造一个以公钥字节作为 HMAC 密钥的 HS256 令牌,并通过页面上两次点击解锁的密钥混淆伪造功能报告该签名是否会被存在漏洞的验证方接受。
- kid 注入标记 — 检测
kid标头值中的路径遍历(../、..%2f、%2e%2e%2f)、SQL 注入('、--、union select、or 1=1)和 XSS 标记(<script>、javascript:、on*=)。每个匹配都是一个独立的检测行,并标注具体标记。 - 标头注入 — 检测标头中是否存在
jku、jwk、x5u、x5c,并以一行 SSRF / 密钥替换 / 信任存储注入风险说明及 URL 或密钥 blob 渲染在标题旁边。 - 基于声明的重放 / 替换提示 — 缺少
exp、缺少nbf、iat在未来、exp在过去、以及exp - iat超过 30 天。时间计算复用 JWT 解码器的interpretTimeClaims;新代码位于一个薄包装中,将每种状态转换为检测行。
kid 面板的作用
kid 面板 允许您输入任何自定义的 kid 值,并查看它将解析为的服务器端路径,使用您控制的模板
(默认:keys/<kid>.pem)。它纯粹是客户端字符串组装——永远不会向渲染的路径发起网络请求。
目的是在无需触碰真实服务器的情况下演示 kid 注入攻击(路径遍历、SQLi、通过 kid 的 XSS)。
例如,输入 ../../etc/passwd,面板会渲染 keys/../../etc/passwd.pem——这正是存在漏洞的验证方将读取的文件路径。
"Swap kid" 操作将面板的 kid 写入伪造面板的标头中,因此您可以立即使用新的 kid 签署一个变体并研究生成的令牌。
"使用当前密钥伪造" 面板
在检测面板下方,伪造面板支持全部九种 JWS 算法(HS256、HS384、HS512、RS256、RS384、RS512、ES256、ES384、ES512),
并复用 JWT 解码器的 jwt.js 中的 signJwt / verifyJwt——不新增任何加密代码。
选择算法,将标头和负载编辑为 JSON,提供密钥(标签和占位符根据算法系列在"共享密钥"和"PEM 私钥"之间自动切换,
镜像 JWT 创建器的模式),点击 签名 生成三段令牌,点击 复制 复制到剪贴板,
点击 验证 使用当前提供的密钥运行签名验证。
alg: none 伪造的两次点击门控
"生成 alg: none 变体" 按钮由 alg 检测行上的小 显示 alg: none 变体 折叠面板门控,
以防止随意粘贴令牌的访问者意外地在剪贴板上产生 alg: none 令牌。
按钮根据折叠面板的展开状态条件渲染——在用户点击折叠面板之前,它不在 DOM 中(不仅仅是隐藏)。
专业受众愿意点击两次;不值得为节省一次点击而留下安全隐患。
常见使用场景
- CTF 挑战 — "五个预设" 库为每种攻击类提供一个规范的已知错误令牌(alg-none 绕过、带
../的 kid、jku 标头注入、用于密钥混淆的 RS256 + 公钥、干净令牌),使演示和复盘一键可达。 - 代码审查 — 从拉取请求粘贴一个令牌,一眼即可看出验证方是否暴露于 alg-none 绕过、密钥混淆、kid 注入或声明审计类。
- 渗透测试报告 — 页面内的 alg-none 伪造和密钥混淆伪造让您铸造绕过变体并将其复制到剪贴板而无需离开页面;生成的令牌可往返于同族 JWT 解码器以进行验证。
- 教学 — 每个检测的说明块(附有相关 RFC 或 PortSwigger Academy 参考)以及 kid 面板被设计为可与安全教科书一起阅读。
隐私不变量
所有分析、五个检测器、两个伪造以及 kid 面板完全在您的浏览器中运行。永远不会有令牌、密钥、签名输出或
kid 派生的 URL 通过网络请求发送。运行时由端到端测试套件中的 Playwright page.on('request') 监听器
验证(与 JWT 解码器和邮件头分析器工具使用的模式相同)。该站点在生产环境中通过 HTTPS 提供,因此浏览器的
SubtleCrypto API(由密钥混淆伪造使用)可用;罕见的非安全上下文情况会禁用密钥混淆伪造按钮并给出明确说明,
工具的其余部分仍然可用。
评论
请接受“功能性”Cookie 类别以查看和发表评论。
评论加载失败。您可以重试,或前往 GitHub 查看讨论。
在 GitHub 上查看