Agent Skills
返回列表
🔒

JWT与OAuth令牌攻击

IT 运维与安全 更新于 2026.08.29

将以下提示词粘贴到你的 AI 对话框中:

请根据 https://skillhub.cn/install/skillhub.md,安装 @user_3c6cb52e/jwt-oauth-token-attacks-hwub。

技能介绍

解决的问题

现代Web应用广泛使用JWT和OAuth 2.0实现身份认证与授权,但开发者常因配置疏漏或对协议细节理解不足引入安全漏洞。例如JWT算法校验缺失导致令牌伪造、OAuth重定向地址验证不严引发令牌泄露,这些问题可能直接导致用户身份冒用或权限提升,传统功能测试往往难以覆盖这类协议层面的攻击面。

核心能力与工作方式

该技能围绕认证令牌攻击场景,提供结构化的攻击测试方法论:

  • JWT攻击:覆盖alg:none算法绕过、RS256→HS256密钥混淆、弱密钥暴力破解、kid/jku头注入等经典攻击。例如当服务端未校验签名算法时,可构造alg:none的无签名令牌;RS256场景下可利用公钥作为HMAC密钥伪造合法令牌。
  • OAuth 2.0攻击:包括state参数缺失导致的CSRF、redirect_uri路径匹配绕过、隐式流程令牌窃取、scope权限提升等。例如隐式流程中令牌通过URL fragment传递,若存在开放重定向可导致令牌泄露。
  • 令牌泄露场景:总结Referer头、服务器日志等常见泄露路径,指导识别令牌在HTTP请求或日志中的意外暴露。

适用边界与注意点

  • 仅针对认证令牌相关的攻击场景,需结合目标应用的实际配置进行测试,不可直接套用所有场景。
  • 涉及的暴力破解、注入等测试需在授权环境中进行,避免对生产系统造成影响。
  • 部分攻击依赖具体实现细节(如kid参数是否拼接SQL查询),需结合代码审计或动态测试验证。
  • 不替代完整的安全审计流程,需与OWASP Top 10等标准配合使用。

使用场景

  • 审计JWT认证的Web服务时,需要构造`alg:none`无签名令牌,验证服务端是否校验签名算法。
  • 测试OAuth登录流程时,检查`state`参数是否缺失,验证能否通过CSRF劫持用户授权。
  • 对采用RS256签名的应用,尝试用公钥作为HS256密钥构造令牌,验证密钥混淆漏洞。
  • 排查令牌泄露时,检查接口是否在URL参数中携带access_token,评估Referer头或访问日志中的泄露风险。

适合人员

  • 负责Web应用渗透测试的安全工程师,需要对OAuth/JWT认证流程做攻击面验证
  • 设计OAuth授权服务的后端工程师,需要在上线前自查redirect_uri校验与PKCE配置
  • 做代码审计的开发人员,需要定位JWT验签逻辑中kid、jku等参数拼接导致的注入风险
  • 处理令牌泄露事件的运维人员,需要排查日志与Referer中的access_token残留