php://伪协议是php提供的一些输入输出流访问功能,允许访问php的输入输出流,标准输入输出和错误描述符,内存中,磁盘备份的临时文件流,以及可以操作其他读取和写入文件的过滤器。
首先看到题目提示传个file,遂/?file=…一个随意参数,而后得到源代码
发现有include_once函数;
include_once():在脚本执行期间包含并运行指定文件。该函数和include 函数类似,两者唯一的区别是 使用该函数的时候,php会加检查指定文件是否已经被包含过,如果是,则不会再被包含。
于是利用伪协议构造,得到经过Base64加密的flag,解密即可。
php://filter/convert.base64-encode/resource=flag.php