简介
JWT攻击是使用者向网站发送修改后的JWT,目标是冒充另一个身份的使用者,并绕过身份验证和存取控制。 如果攻击者能够使用任意值创建自己的JWT有效令牌,他们能够升级自己的权限或冒充其他用户,完全控制他们的帐户。
JWT常见攻击手法有以下几种:
- 签名未验证
- JWT无签名
- 爆力破解对称式加密签名
- 用kid绕过对称式加密签名
- 用JWK绕过非对称式加密签名
- 用JKU绕过非对称式加密签名
关于JWT的介绍可参考json web token介绍
1.签名未验证
网站没有验证JWT签名,攻击者可以对JWT内容任意更改
举例如下,当存取admin页面时,返回只有administrator帐户才能使用
################ request ################
GET /admin HTTP/1.1
Host: 0a36001b04ccef7bc0a7741d006c0066.web-security-academy.net
Cookie:session=eyJraWQiOiI0ZjY1MzkzNC0yMTM3LTQzNGItYjE0OC0yNzg4Y2Y0OGRlMWYiLCJhbGciOiJSUzI1NiJ9.eyJpc3MiOiJwb3J0c3dpZ2dlciIsInN1YiI6IndpZW5lciIsImV4cCI6MTY1NjU3ODQxNH0.Hp6sPpaIOCVwA34Eb2-h_pU2r6dUH_ZptjPt07uvKcF6z7PGUKWTV6ZQqXMoArudgF2E0WyAP0BYzoYZ1M4WVu4tUY3v_1