这道题也是我在攻防世界中看到的,但是作为一个合格的ikun(手动滑稽.jpg),肯定要单独拿出来啊2333333
Kunkun!!!!!!!(破音)
按题目要求需要买6级,下面翻了好多页都没看到lv6
写个脚本安排上
1 | import requests |
跑出来在181页上,加个购物车,改个优惠额度,成功买下
买下后进入了一个新的页面,提示需要admin才能访问
在cookie中发现有JWT
相关知识:https://www.jianshu.com/p/576dbf44b2ae
header和payload部分可以通过base64直接解出来,第三个部分signature部分是由header和payload的base64拼接并按照header中的加密方式加盐得到的,所以这里需要去找到密钥是啥
利用工具进行爆破,得到密钥1kun
https://github.com/brendan-rius/c-jwt-cracker
然后构造admin的JWT
https://jwt.io/ 这个网站可以很方便的进行测试
构造好后成功进入该页面,在源代码中找到了提示
下载之后,代码审计,在admin.py中存在反序列化
这里的序列化参数become,发现其实在页面中有个隐藏输入框,是可以提交become参数的只要取消hidden属性就可以了
接下来生成一个payload,运行得到需要的become
1 | import pickle |
c__builtin__%0Aeval%0Ap0%0A%28S%22open%28%27/flag.txt%27%2C%27r%27%29.read%28%29%22%0Ap1%0Atp2%0ARp3%0A.
突发觉得还是做一个沙雕快乐,毕竟只是个five啊