攻击性JWT
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @user_3c6cb52e/offensive-jwt-vglj。
技能介绍
要解决的问题
JWT 在渗透测试里常常是被跳过的一环。拿到 Authorization: Bearer 或一枚形如 eyJ... 的 Cookie 之后,很多流程只做一次 jwt.io 解码就收工,结果漏掉了签名校验、claims 校验和 header 参数处理里藏着的一大片逻辑缺陷。这类缺陷的形态很固定:alg 被切成 none、RSA 公钥被当成 HMAC 对称密钥使用、kid 指向的文件路径被注入、过期的 token 仍然被接受——每一条都是实打实的绕过,但靠临时回忆很难系统覆盖。
这个技能做什么
它是一份按顺序执行的攻击检查清单,要求你在每个阶段把技术套用到当前目标上下文,并记录哪些条目已经完成,而不是泛泛地罗列漏洞名称。
发现与枚举:先在所有请求里找 Authorization: Bearer 头,再看 Cookie 中是否含 JWT 结构,接着检查浏览器 localStorage / sessionStorage,最后解码 header、payload 和签名三部分,专门留意 kid、jku、jwk、x5u 这几个攻击面字段。
算法与签名层:覆盖 alg:none 及其大小写变体、RS256→HS256 的算法混淆、弱 HMAC 密钥爆破、签名完全缺失或校验逻辑实现错误。
实现与头部层:exp/nbf/aud/iss 未校验、令牌无过期、HTTP 明文传输、调试信息泄露,以及 jwk 注入、jku 指向攻击者控制的 JWKS 端点、x5u 加载不可信证书、crit 头被忽略导致的绕过和 JWKS 缓存投毒。
其他攻击面:移动端 JWT 存储(Android 的 SharedPreferences、Keystore、备份,iOS 的 Keychain 可访问性、iCloud 备份,React Native 的 AsyncStorage 明文)、JWS/JWE 混淆、SAML 与 JWT 混淆、OAuth token 混淆、session cookie 与 JWT 混合、URL 参数中的 token 泄露与 Referer 外泄。
适用边界
这份清单面向授权范围内的安全测试。清单里大量技术的后果取决于目标自身的校验逻辑,某些条目(如 SSRF、缓存投毒)在真实环境里可能影响其他服务,动手之前需要先确认测试授权与影响面。它不负责修复代码,也不替代对具体库行为的阅读——kid 注入能否成功、crit 头是否被忽略,最终都要回到目标实现本身去判断。
使用场景
- 渗透测试工程师在授权靶场中,需要系统排查 Authorization Bearer 令牌是否存在 alg:none 或算法混淆绕过。
- 安全审计人员面对包含 kid、jku 或 jwk 字段的 JWT 头,需要验证是否存在密钥注入或 SSRF 风险。
- 移动安全研究员在分析 Android 或 iOS 应用时,需要提取并检查本地存储或 Keychain 中的 JWT 是否明文暴露。
适合人员
- Web 渗透测试工程师,需要在授权测试中按步骤排查 JWT 签名校验与 claims 验证的逻辑缺陷。
- 安全审计与代码审查人员,需要针对 JWT 头部参数处理和密钥加载逻辑提供具体的漏洞修复建议。
- 移动应用安全研究员,需要针对 Android 和 iOS 客户端的 JWT 本地存储方式提供提取与风险分析方案。