打开网页,可以看到后端源代码:

    1.png

    根据源代码可知,我们需要用 GET 请求传递一个参数file,我们让它的值不包含flag子串,这样strpos()会返回FALSE,程序控制流会进入分支,执行include $_GET["file"];语句。

    题目给了 phpinfo 文件,我们进去一看,发现服务器打开了 URL 包含的功能:

    2.png

    有了这样的前提,我们可以使用php://input协议完成题目,也可以用远程文件包含。由于使用远程文件包含需要你有一个公网 IP 的 HTTP 服务器,我们选择hastebin.com来辅助我们完成题目。

    我们在 hastebin 写入命令执行语句,然后显示 raw 文本内容:

    3.png

    这样网页会跳转到一个只有文本内容的 URL:

    4.png

    我们把它复制下来,用 Burpsuite 的 Repeater 重放到题目的 URL:

    5.png

    然后我们使用命令find / -iname flag找到 Flag 文件的位置:

    6.png

    最后用cat /flag命令把它打印出来即可:

    7.png