[PASECA2019]honey_shop writeup
这是PASECA2019的一道web题
前端是一个蜂蜜商店,你有$1336
,可以买蜂蜜和flag。但是flag要$1337
,所以我们只能买蜂蜜。
一般这种题目的常规操作就是通过修改你的钱使你能够买到flag。但是看前端也没有什么提示,我们可以抓包观察。
抓包分析
买第一个蜂蜜之后的数据包是这个,显然item是你购买的商品序号,捕捉到session有点奇怪。
发送到repeater之后服务器也没有返回什么有用的东西。重新看前端界面,有一行字
*click to download our sweet images*
下载图片是html文件,我们在下载时抓包分析
在网页的/download?image=1.jpg
目录下
文件包含检查
我们针对服务器存在的文件做检查,比如linux里的/etc/passwd
,尝试一下本地文件包含/download?image=../etc/passwd
返回如下
有戏,继续尝试,直到这样/download?image=../../etc/passwd
那我们可以通过这个读取/proc/self/environ
(纪录当前进程,也就是python的环境变量)
/download?image=../../proc/self/environ
发现了secret_key,这个是Flask Session Cookie加解密中会用到的密钥。因此我们可以想到,这道题是将数据通过Flask Session Cookie加密后存在cookie中,那么我们想要修改钱,就可以伪造cookie。
密钥加解密
我们先将原cookie解密看一看
然后我们修改钱之后再加密
伪造完成,我们到买flag的界面,修改cookie
完成。