📌 一句话概括
JWT和OAuth是现代API认证的基石——JWT负责"你是谁"的令牌签发和验证,OAuth负责"你能做什么"的授权委托流程,两者的实现缺陷是API安全漏洞的高发区。
💡 JWT测试要点
① JWT结构
Header.Payload.Signature — 三部分Base64编码
② 常见漏洞
- 算法混淆:将RS256改为HS256,用公钥作为密钥验证
- alg:none:将算法设为none绕过签名验证
- 敏感信息泄露:Payload中存放密码等敏感信息(仅Base64非加密)
- 过期时间过长:exp字段设置不合理(如30天)
💡 OAuth 2.0 测试要点
- redirect_uri 校验绕过:开放重定向漏洞
- CSRF攻击:state参数未使用或可预测
- Token泄露:Authorization Code在URL中传递
- Scope越权:应用请求超出所需权限范围
🔍 测试实战
1. JWT攻击测试
操作:用 jwt_tool 测试算法混淆、none攻击、暴力破解密钥
工具:jwt_tool、jwt.io调试器
2. OAuth流程测试
操作:拦截OAuth回调,篡改redirect_uri和state参数
工具:Burp Suite OAuth模块
⚠️ 常见坑点
- JWT密钥硬编码在代码中——GitHub搜索即泄露
- OAuth流程缺少state参数——存在CSRF攻击风险
- Token未绑定客户端——被盗token可在任意设备使用