You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

OAuth采用RS256签名JWT时Header为空仍可访问API是否为安全漏洞?

安全问题定性

你发现的场景属于高危身份认证安全漏洞,对应通用漏洞枚举CWE-347(密码签名未正确校验)。

按照JWT规范和OAuth安全最佳实践,采用RS256签名的JWT校验逻辑必须满足三个强制要求:

  1. 拒绝所有结构不完整的JWT
  2. 强制校验JWT头部声明的签名算法必须等于服务端预先配置的RS256,不允许动态适配算法
  3. 必须校验签名段的合法性,和服务端存储的公钥比对一致才可通过校验

你遇到的空头部、无签名段可通过校验,以及指定none算法可通过校验的情况,说明服务端JWT校验逻辑完全违反了上述所有要求,存在极其严重的身份校验缺陷。


攻击者可利用的攻击方式

  • 未授权访问所有受保护接口:攻击者无需窃取用户合法JWT、也无需获取RS256签名私钥,只需要自行构造符合业务payload格式要求的未签名JWT,即可直接通过身份校验,访问所有本该授权后才可访问的API,包括用户敏感信息查询、业务数据修改、管理端操作接口等。
    示例攻击用JWT构造方式:
    1. 头部指定none算法:{"alg":"none"},Base64URL编码后为eyJhbGciOiJub25lIn0
    2. 自定义payload内容,比如伪装管理员:{"user_id":1,"role":"admin","exp":4796620800},Base64URL编码后为eyJ1c2VyX2lkIjoxLCJyb2xlIjoiYWRtaW4iLCJleHAiOjQ3OTY2MjA4MDB9
    3. 拼接后留空最后签名段,最终可用的攻击令牌为:eyJhbGciOiJub25lIn0.eyJ1c2VyX2lkIjoxLCJyb2xlIjoiYWRtaW4iLCJleHAiOjQ3OTY2MjA4MDB9.
  • 垂直/水平权限绕过:攻击者可以任意修改payload中的用户ID、角色、权限范围等字段,无需调整签名即可伪装成任意用户、将普通用户权限提升为管理员权限,执行越权操作。
  • 构造永久有效访问凭证:攻击者可以自行修改payload中的exp(过期时间)字段为极远的未来时间,得到永不过期的访问凭证,长期对业务进行恶意操作、窃取数据。

内容的提问来源于stack exchange,提问作者Testers Logic

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 19:36:02