CTFSHOW jwt篇

本文详细介绍了JWT(JSON Web Token)的结构,包括header、payload和signature,并展示了如何解码和修改JWT。同时,提到了JWT的安全风险,如无算法攻击、爆破攻击,以及私钥和公钥的使用。文中还提供了相关的攻击参考链接、解密工具和代码示例,强调了正确使用JWT和设置密钥的重要性。

可以先了解下jwt
jwt由三部分组成header、payload、signature
header示例

{
  'typ': 'JWT',
  'alg': 'HS256'
}

payload示例

{
  "sub": "1234567890",
  "name": "John Doe"
}

signature
jwt的第三部分是一个签证信息,这个签证信息由三部分组成:
header (base64编码)
payload (base64编码)
secret(密钥)
这个部分需要base64加密后的header和base64加密后的payload使用.连接组成的字符串,然后通过header中声明的加密方式进行加盐secret组合加密,然后就构成了jwt的第三部分。

这三部分用.连接起来就是完整的jwt了。

jwt攻击参考文章https://xz.aliyun.com/t/2338

web345

jwt解密网站https://jwt.io/
这个题我们解密发现他没有第三部分,所以也就用不着知道他的密钥了。直接每一部分base64然后用.连接就可以了。
第一部分{"alg":"None","typ":"jwt"}base64编码后是eyJhbGciOiJOb25lIiwidHlwIjoiand0In0(去掉等号)
第二部分[{"sub":"admin"}]base64编码后是W3sic3ViIjoiYWRtaW4ifV0
所以把原来的jwt修改为eyJhbGciOiJOb25lIiwidHlwIjoiand0In0.W3sic3ViIjoiYWRtaW4ifV0然后访问/admin即可

web346

将算法改成none,user改成admin

import time
import jwt

# payload
token_dict = {
   
   
  "iss": "admin",
  "iat": 1610432484,
  "exp": 1610439684,
  "nbf": 1610432484,
  
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

yu22x

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值