[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']} //私钥之前的没保存又重新获取的