宸极实验室—『红蓝对抗』JWT 攻击手法

宸极实验室—『红蓝对抗』JWT 攻击手法
最新回答
薄荷凉我心

2026-03-14 11:51:56

介绍:本文将探讨JWT(JSON Web Token)的一些攻击手法,包括空加密算法攻击、未校验签名、爆破密钥以及修改 KID 参数攻击。


JWT介绍:JWT是基于JSON的开放标准,用于在客户端和服务端之间交换用户信息。通过将用户信息加密到token中,服务器只需保存密钥信息,通过特定加密算法验证token,从而实现用户身份验证。相比于传统的cookie+session身份验证方法,JWT可以替代并提供更简洁的身份验证机制。


攻击方式:攻击者可以利用JWT的某些安全漏洞进行攻击。以下是四种常见的攻击手法。




  1. 空加密算法攻击:在header中设置alg为None,不添加signature字段,任何token都可以通过服务器验证。攻击者可以修改JWT中的payload部分,如将admin的值改为true,绕过权限控制。




  2. 未校验签名攻击:某些服务端未校验JWT签名,可以尝试修改signature字段或直接删除signature字段,查看JWT是否仍然有效。攻击者可以修改exp字段,并删除签名字段,绕过时效验证。




  3. 爆破密钥:攻击者可以使用已知的JWT进行解密,获取加密算法及用户信息。利用这些信息,攻击者可以暴力破解密钥,修改用户信息,并重新加密JWT。攻击者需注意时间校验,确保修改后的exp字段指向未来时间。




  4. 修改 KID 参数攻击:KID用于指定加密算法的密钥。攻击者可以修改KID参数,利用攻击者控制的参数读取系统任意文件、执行SQL注入或命令注入攻击。攻击者需构造特定参数,如SQL语句或命令,以实现其攻击目标。




总结:JWT具有许多优点,但其安全漏洞不容忽视。理解并掌握JWT的攻击手法对于渗透测试和漏洞挖掘工作至关重要。在日常应用中,应加强JWT的安全措施,避免此类攻击。