一、RCE 简介与危害
RCE 漏洞,远程代码执行和远程命令执行漏洞。在很多 Web 应用中,开发人员会使用一些函数(eval),这些函数以一些字符串作为输入,功能是将输入的字符串当作代码或者命令来进行执行。当用户可以控制这些函数的输入时,就产生了 RCE 漏洞。RCE漏洞是非常严重的安全漏洞,一旦出现,就意味着攻击者可以获取服务器的命令执行权限,从而对服务器安全造成极大的影响。
二、高危函数
-
system():用于执行系统命令,攻击者可以通过该函数执行恶意命令。
-
exec():同样也是用于执行系统命令的函数。
-
eval():用于执行字符串表达式,可能会导致代码注入漏洞。
-
passthru():类似于system()函数,同样用于执行系统命令。
-
popen():用于打开一个进程,并执行一个命令。
-
shell_exec():用于执行系统命令,并返回输出。
-
pcntl_exec():用于执行外部程序。
-
include()和require():用于包含其他文件,如果未过滤用户输入可能导致代码注入。
这些函数在处理用户输入时应当谨慎使用,并进行充分的输入验证和过滤,以防止RCE漏洞的发生。
三、案例
新建1.php存储下列代码
<?php
$code=$_GET['x'];
eval($code);
?>
访问:localhost/1.php?x=phpinfo();
那如果要访问ip呢? 大家是不是想直接替换成localhost/1.php?x=ipconfig;
结果是会报错的。需要修改代码后,再访问localhost/1.php?x=ipconfig;即可。
<?php
$code=$_GET['x'];
echo system($code);
?>
标签:php,系统命令,漏洞,RCE,执行,函数
From: https://blog.csdn.net/2301_82218779/article/details/139323905