首页 -> 安全研究

安全研究

紧急通告
绿盟科技紧急通告(Alert2010-05)

NSFOCUS安全小组(security@nsfocus.com)
http://www.nsfocus.com

nginx文件路径处理远程命令执行漏洞

发布日期:2010-05-21


受影响的软件及系统:
====================
Igor Sysoev nginx 0.8.x
Igor Sysoev nginx 0.7.x
Igor Sysoev nginx 0.6.x

综述:
======
nginx是多平台的HTTP服务器和邮件代理服务器,可以被配置为以CGI的方式支持PHP脚本的运行,nginx在处理PHP脚本文件路径的解析时存在问题,可能导致网站允许上传文件的服务被攻击者控制。如果网站允许上传文件,而且上传文件路径可得到,远程攻击者可以利用此漏洞上传包含恶意代码的文件并得到执行,实现以Web进程权限执行任意命令。

此漏洞是一个0day漏洞,厂商还没有提供补丁,漏洞相关的技术细节已经公开,目前已经有利用此漏洞的攻击出现。鉴于漏洞相关的nginx软件有相当的市场占有率,被大量追求高性能网站所采用,所以此漏洞的影响面很大,强烈建议用户按临时解决方案中建议修改配置,避免网站受此漏洞影响。

分析:
======
问题出现在nginx传递访问的URL和后续的脚本路径提取过程中,攻击者可以上传允许上传的文件类型,文件中包含恶意代码,得到所上传的文件通过Web可访问的URL后,在其后添加任意php后缀的文件名进行访问,存在漏洞的处理过程会把上传的文件作为CGI脚本执行。

如果网站允许上传某些格式的图片文件,攻击者可以上传名为 malicious.jpg 的文件,文件中包含了恶意的PHP代码(通常是一个WebShell),得到的文件访问路径为 http://www.victim.com/uploaded_images/malicious.jpg 。那么攻击者可以通过访问 http://www.victim.com/uploaded_images/malicious.jpg/nonexist.php 来强制服务端把 malicious.jpg 文件作为PHP脚本来处理,这样,文件中的恶意代码就得到了执行。

解决方法:
==========
用户可以采用下面的临时解决方案来避免漏洞的威胁:

* 修改运行配置
  
  修改PHP的配置文件php.ini,把默认的如下行:
  cgi.fix_pathinfo=1

   修改为:
    cgi.fix_pathinfo=0

   重启nginx服务器。

厂商状态:
==========
目前厂商还未发布漏洞相关的安全补丁,我们建议在安装官方补丁之前应用本通告的临时解决方法以避免漏洞的威胁:

http://nginx.net/

附加信息:
==========
http://www.nsfocus.net/vulndb/15077
http://www.80sec.com/nginx-securit.html

声 明
==========

本安全公告仅用来描述可能存在的安全问题,绿盟科技不为此安全公告提供任何保证或承诺。由于传播、利用此安全公告所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,绿盟科技以及安全公告作者不为此承担任何责任。绿盟科技拥有对此安全公告的修改和解释权。如欲转载或传播此安全公告,必须保证此安全公告的完整性,包括版权声明等全部内容。未经绿盟科技允许,不得任意修改或者增减此安全公告内容,不得以任何方式将其用于商业目的。

关于绿盟科技
============

绿盟科技(NSFOCUS Co., Ltd.)是中国网络安全领域的领导企业,致力于网络和系统安全问题的研究、高端网络安全产品的研发、销售与网络安全服务,在入侵检测/保护、远程评估、 DDoS攻击防护等方面提供具有国际竞争能力的先进产品,是国内最具安全服务经验的专业公司。有关绿盟科技的详情请参见: http://www.nsfocus.com

© 2024 绿盟科技