JWT详解
本文最后更新于 2026年1月9日 晚上
参考知识
[PCTF] Jwt_password_manager
题目提示仪表盘支持jwt认证,代码发现提示flag在admin用户中
先注册一个普通用户拿到token,再结合secret_key修改权限

修改token拿到flag

[BaseCTF2024] NO JWT
首先审计代码,发现/login和/flag路径
打开/flag发现要校验身份,那就先去/login获取令牌,根据提示随便传入一个json

代码中没有secret_key,但是在后面也没有校验签名,所以采用none攻击

[CTFshow] 抽老婆
下载图片发现download后门

仔细观察发现是python flask框架,尝试下载app.py,成功
审计代码发现/secret_path_U_never_know路径,但是还需要绕过身份验证
只需要让session中的isadmin为真就可,这个用的是JWT方式认证,将isadmin的值更改后,使用密钥SECRET_KEY重新加密生成一个session。

使用hackbar传入即可
[CTFHub]弱签名
如果JWT采用对称加密算法,并且密钥的强度较弱的话,我们可以直接通过蛮力攻击方式来破解密钥

由此我们便得到了密钥hnqx
补充
1.如何判断签名校验
在Jwt_password_manager中,有一个校验签名的函数,并且在用户名赋值时调用了校验函数

但是在no_jwt中不进行签名验证和过期验证,仅对 JWT 令牌进行解码

因此可以使用none攻击
2.如何判断网站是python写的
- 查看请求头的server信息
- 看网站后缀名
JWT详解
https://www.sunynov.top/2025/12/29/JWT详解/