本题主要考查的是php伪协议进行文件包含
进入本题之前先来认识一下常见的三种方法
1.php://filter 读取文件源码
2.php://input 任意代码执行
3.data://text/plain 任意代码执行
下面我们回到本题
打开链接,点击tips
首先考虑使用php://input 任意代码执行
发现直接被题目过滤了
于是我们考虑使用php://filter 读取文件源码的方法
构造playload
?file=php://filter/read=convert.base64-encode/resource=flag.php
这里需要注意的是,php://filter伪协议进行文件包含时,加上read=convert.base64-encode是对文件内容进行编码。也就是把文件里的源码用base64编译一遍
复制文本解码
得到flag
flag{54577462-6fb9-4d3c-b6e1-dbf6beef143f}