PHP 中有⼀些函数是⽐较危险的,也是进⾏PHP 代码审计的时候需要重点关注的内容。 RCE,Remote Code Execute,远程代码执⾏。
0x01 OS 命令执⾏函数
这些函数会调⽤系统命令,类似于 bash 或者 cmd ,PHP 会⾃动区分平台。
#系统命令函数,调⽤的是服务器命令。
#PHP 解释器会⾃动识别系统平台。
#如果参数可控,就相当于 Shell 。
#在浏览器端输⼊命令,在服务器端执⾏。
#通过Web ⽅式传参调⽤系统命令,⽆法切换⼯作⽬录,⾮持久性连接,对⽐反弹Shell。
system()
system() 能够将字符串作为OS 命令执⾏。
#自带输出功能
<meta charset='gb2312'>
<?php
if(isset($_GET['cmd'])){
echo "<pre>";
system($_GET['cmd']);
}else{
echo"
?cmd=ipconfig
";
}
?>
exex()
exec() 函数能将字符串作为OS 命令执⾏。
#需要输出命令执⾏结果
#不⽀持命令中有空格
只显示一行