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的值