[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

完成。

posted @ 2020-11-01 19:44  Ephemerally  阅读(202)  评论(0编辑  收藏  举报