[PASECA2019]honey_shop
文章目录
- [PASECA2019]honey_shop
- 掌握知识
- 解题思路
- 关键paylaod
掌握知识
页面信息收集,根据下载的图片找到下载链接,确定url的参数进行利用;session字段的解密和解密,session伪造的考点。
解题思路
- 打开题目链接,发现又是购买
flag的题目,点击购买,提示购买不了,根据之前的经验直接选择抓包查看请求数据了。发现了可疑的session字段,做过了不少的session伪造的题目,看这个session字段应该也是能进行加解密的格式


- 使用
python脚本对session字段进行解密,果然得到了数据,第一个数据根据购买之后页面回显的1336证明就是当前所有的钱数,第二个值不清楚什么意思,购买一个能买的起的进行抓包解密响应包的session字段,查看字段内容。现在就很明了了,只需要将后面的数据的1326修改的比1337大,session加密后替换原有的session字段就能购买得到flag了


- 但是有关键的一环,就是
session加密的时候需要私钥,所以还需要找到改题目隐藏的私钥才行。回到界面进行信息收集,发现源代码有/download目录,一看就是能下载文件,猜测可以利用进行目录遍历下载任意文件。来到界面发现一句话,点击图片就能下载,看来是和源代码相联的


- 点击之后成功下载图片,浏览器查看下载的图片,右键复制下载链接,可以看到下载的
url路径,确定的传参参数为image。但在写笔记的时候想起来也能直接点击然后查看抓包,就能只看看到url路径,测试一番比上面的方便多了



- 测试一下是否可以进行目录遍历进行任意文件下载,先访问
/etc/passwd文件,响应包成功返回内容,证明可行性

- 根据前面的学习,
url地址和前面的有道题很相似,看这url路径猜测像是python后端,去查看一下是否有源码泄露,查看/app/app.py文件发现返回没权访问


- 陷入僵局了,看来是隐藏到了某个很CTF比赛的一个文件中。根据之前的
ssti模板注入的题目,相同的python后端,有一道题是读取一个当前运行环境的文件地址,尝试读取一下没想到还真藏在这里


- 这样参数集齐,使用
session伪造的脚本进行session加密,本地环境命令行执行失败,只能使用pycharm的功能填写形参进行运行得到session字段。


- 替换原来的session字段,购买
flag,拿下

关键paylaod
/download?image=../../../../proc/self/environ
/download?image=../../../../etc/passwd
encode -s JWHrgjoJhQLMVdb9efsOTiVd7P2pKlSa3MpgIDmk -t {'balance': 1326, 'purchases': ['Acacia honey']} //私钥之前的没保存又重新获取的



















