17 lines
825 B
Markdown
17 lines
825 B
Markdown
### JWT 有哪些漏洞
|
|
|
|
**1. 算法混淆攻击**
|
|
|
|
- 原理:服务器使用 RS256(非对称加密)验证令牌,但攻击者将算法头部改为 HS256(对称加密),并利用服务器公钥作为 HMAC 密钥签名令牌。
|
|
- 利用条件:服务器未严格校验算法类型,且公钥可获取
|
|
- 攻击步骤:
|
|
1. 获取服务器公钥(通常从 `/jwks.json` 或重复使用 SSL 证书)
|
|
2. 修改 JWT 头部:`"alg":"HS256"`
|
|
3. 使用公钥作为密钥生成 HMAC 签名
|
|
4. 服务器用公钥解密(误认为是 HMAC 密钥)→ 验证通过
|
|
|
|
**2. none 算法攻击**
|
|
|
|
- **原理**:将 `alg` 头部设为 `none`,使服务器跳过签名验证
|
|
- **利用**:直接删除签名部分,修改 Payload 内容
|
|
- **防御**:现代 JWT 库默认禁用 `none`,但配置错误可能启用 |