Files
Sec-Interview/Chapter28/28-8.md
T
2026-03-11 10:31:47 +08:00

825 B

JWT 有哪些漏洞

1. 算法混淆攻击

  • 原理:服务器使用 RS256(非对称加密)验证令牌,但攻击者将算法头部改为 HS256(对称加密),并利用服务器公钥作为 HMAC 密钥签名令牌。
  • 利用条件:服务器未严格校验算法类型,且公钥可获取
  • 攻击步骤:
    1. 获取服务器公钥(通常从 /jwks.json 或重复使用 SSL 证书)
    2. 修改 JWT 头部:"alg":"HS256"
    3. 使用公钥作为密钥生成 HMAC 签名
    4. 服务器用公钥解密(误认为是 HMAC 密钥)→ 验证通过

2. none 算法攻击

  • 原理:将 alg 头部设为 none,使服务器跳过签名验证
  • 利用:直接删除签名部分,修改 Payload 内容
  • 防御:现代 JWT 库默认禁用 none,但配置错误可能启用