1、漏洞描述:
Command Injection,即命令注入攻击,是指由于Web应用程序对用户提交的数据过滤不严格,导致黑客可以通过构造特殊命令字符串的方式,将数据提交至Web应用程序中,并利用该方式执行外部程序或系统命令实施攻击,非法获取数据或者网络资源等。在命令注入的漏洞中,最为常见的是PHP的命令注入。PHP命令注入攻击存在的主要原因是Web应用程序员在应用PHP语言中一些具有命令执行功能的函数时,对用户提交的数据内容没有进行严格的过滤就带入函数中执行而造成的。例如,当黑客提交的数据内容为向网站目录写入PHP文件时,就可以通过该命令注入攻击漏洞写入一个PHP后门文件,进而实施进一步的渗透攻击。
2、检测条件:
已知某页面URL (假设为http://www.exmaple.com/abc.jsp
) 接收参数,且参数中接收类似于系统命令的字符(假设为cmd=ls)
3、检测方法
在Web应用程序中查看文件时,文件名通常显示在URL中。Perl允许进程通过管道把数据传送到open语句中。用户只需在文件名尾部追加管道符号" | "即可。
更改前的示例URL:
http://sensitive/cgi-bin/userData.pl?doc=user1.txt<br>
修改后的示例URL:
http://sensitive/cgi-b