[BUUCTF题解][HarekazeCTF2019]encode_and_encode
### 知识点
- JSON基础
- PHP伪协议
过程
做题先搜集(扫目录+检查HTTP报文+查看初始页面HTML代码),点击初始页面的Source Code链接会跳转query.php并显示源码。

简单来说就是根据我们传入的POST数据作为json解析去读取文件,但是过滤了相关关键字,并对结果也进行过滤。
json解析时的关键字过滤可以采用unicode编码,json是支持用unicode编码直接表示对应字符的,如下两个写法是等价的。
{"poc":"php"}
{"poc":"\u0070\u0068\u0070"}
至于结果的过滤就好办了,采用php伪协议的filter进行下base64编码就好了,最终构造如下payload:
{"page":"\u0070\u0068\u0070://filter/convert.base64-encode/resource=/\u0066\u006c\u0061\u0067"}

解码后获得flag。


浙公网安备 33010602011771号