*CTF 2023

发布时间 2023-07-31 14:25:44作者: kode

jwt2struts

首先打开网站,看到这个

然后用bp抓包看到了JWT_key.php 这个网页

 

打开之后

 

 

这里进行代码审计,可以看到如果md5加密拼接后的$salt $username和$password等于COOKIE传入的digest的话就会返回私钥

如果我们知道私钥的话,我们就可以用jwt漏洞修改token使得我们的账号为admin。

这里的话考了一个哈希长度拓展攻击,具体原理可以看这篇文章:https://www.cnblogs.com/p00mj/p/6288337.html

然后我们使用hashpump工具生成我们的password与username。(这个工具需要自己进行下载)

这里注意\x需要进行url编码

这里用php脚本进行url编码

 

之后post传入username与password=root%80%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%B8%00%00%00%00%00%00%00ke

cookie传入:digest=8e80675c70f304dc7be8817102e84808

然后可以看到获得了secret_key。然后我们可以去伪造之前的token

 

 

我们使用伪造后的token,然后可以看到重定向到了

 访问这个目录。

 然后看到这个和struts2有关,所以我们用struts2漏洞检测工具

读一下环境变量

 可以看到获得了flag的值