334 字
2 分钟
JWT练习
2025-11-18

下载 jwteditor 插件,在历史中找到使用 jwt 加密的请求

查看 jwt,需要先将 jwteditor 中先添加一个 key,这题随便写个,因为后端只将 token 进行了解码但是并没有验证签名,再将 payload 中的值改为 administrator,点击 signature 生成新签名,verify 检验签名是否正确

替换 token 成功登录管理员

2.利用 alg 缺陷

将 alg 设为 none

3.hashcat 爆破出密钥

4.jwk 注入

在插件中生成一个任意的 rsa 密钥

在攻击中选择嵌入 jwk 攻击

5,jwu 注入

复制设置的公钥导出为 jwk,在可控的服务器上设置文件内容为{ “keys”: [ ] },将导出的公钥复制进去

添加 jwu 头,修改 kid 为设置的公钥的 id

6.kid 遍历

服务器从文件内容中获取密钥,进行目录穿越到/dev/null 文件,文件内容为空

新键一个 k 为空,base64 编码为 AA==

7.算法混淆

访问网站/jwks.json 获取网站公钥

进入插件选择生成 RSA 密钥,导入获取的公钥,选择 pem 格式,复制后进行 base64 编码,bp 中进行 base64 编码不知道为什么会编码错误

选择生成 对称加密,将 base64 编码后的导入 k

将 alg 改成 HS256 进行算法混淆

JWT练习
https://lab404.cn/posts/jwt-exercise/
作者
见山
发布于
2025-11-18
许可协议
CC BY-NC-SA 4.0