命令执行
简介
命令执行通常因为指web应用在服务器上拼接系统命令而造成的漏洞。
命令执行直接调用操作系统命令。在操作系统中,“&、|、||"都可以作为命令连接符使用,用户通过浏览器提交执行命令,由于服务器端没有针对执行函数做过滤,将用户的输入作为系统命令的参数拼接到命令行中,在没有过滤用户输入的情况下,造成命令执行漏洞。
场景
该类漏洞通常出现在调用外部程序完成一些功能的情景下。比如一些Web管理界面的配置主机名/IP/掩码/网关、查看系统信息以及关闭重启等功能,或者一些站点提供如ping、nslookup、提供发送邮件、转换图片等功能都可能出现该类漏洞。
危险函数
PHP
system:可以执行系统命令并将其输出。
exec:执行命令,但无输出,可以使用output进行输出
passthru:执行命令并输出
shell_exec:执行命令,但无回显
popen
proc_open
pcntl_exec(