RCE
应用有时需要调用一些执行系统命令的函数,当服务器没有严格过滤用户输入的参数时,就有可能导致用户提交恶意语句被服务器执行,造成命令或代码执行漏洞,从而控制后台系统
原因
- 代码层过滤不严
- 系统的漏洞造成命令注入
- 调用的第三方组件存在代码执行漏洞
命令执行
函数
-
system()
该函数会把执行结果输出,并把输出结果的最后一行作为字符串返回,如果执行失败则返回false
-
shell_exec()
不输出结果,返回执行结果
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/ddf1c9b9cd61450aece8ea38e9af8252.png)
-
popen()
-
exec()
不输出结果,返回执行结果的最后一行
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/cca16b8c611f86298aea3ff6df4b7603.png)
-
passthru()
此函数只调用命令,并把运行结果原样地直接输出,该函数没有返回值。