安全研究

安全漏洞
Microsoft IIS CGI文件名检查漏洞(MS00-086/Q277873)

发布日期:2000-11-08
更新日期:2000-11-08

受影响系统:
Microsoft IIS 4.0 (<SP6)
  Microsoft IIS 5.0
不受影响系统:
Microsoft IIS 4.0 ( SP6/SP6a )
描述:
NSFOCUS ID : 1005
BUGTRAQ ID : 1912
CVE/CAN ID : CVE-2000-0886

NSFOCUS安全小组发现微软IIS 4.0/5.0在处理CGI程序文件名时存在一个安全
漏洞,攻击者可能利用这个漏洞查看系统文件或者执行任意系统命令。

Microsoft IIS 4.0/5.0在处理CGI程序(.exe, .pl, .php等等)时, 对用户请求
的CGI程序名没有做完整的安全检查。如果文件名中包含一个特殊字符,可能导
致IIS错误地打开或者执行文件。

1. 如果用户构造一个特殊的HTTP请求,要求IIS执行一个可执行目录下的".exe"
或者".com"后缀结尾的程序。IIS会试图加载这个程序,加载时会首先检查这个
文件是否存在以及此文件的类型。攻击者通过在文件名中添加一个特殊字符,
导致加载程序错误地检查了另外一个不同的文件。如果此文件满足以下条件:

(1) 此文件存在
(2) 此文件是一个批处理文件
(3) 文件是一个大于零字节的纯文本文件

IIS会自动调用"cmd.exe"对其进行解释。初始文件名的其他部分被当作批处理
文件的参数传递给"cmd.exe",攻击者可以使用"&"等符号来执行任意命令。

2. 如果系统中安装了一些脚本解释器(php.exe,perl.exe等等)以及映射,当用
户要求执行对应的CGI脚本程序(.php3, .pl等等)时,IIS会将用户提供的文件
名交给脚本解释器解释。如果攻击者在文件中使用某些特殊字符,将使该解释
器打开一个WEB目录以外的文件,依赖于解释器的处理方式,攻击者可能获取文
件的部分或者全部内容。

<*来源:NSFOCUS Security Team (security@nsfocus.com)
       中联绿盟安全公告(SA2000-07) : http://www.nsfocus.com/sa-07.htm
*>

建议:
临时解决方法:

确保没有不必要的批处理文件,并保证批处理文件不与任何的虚拟可执行
目录在同一个驱动器上


厂商状态:

微软已就此发布了一个安全公告(MS00-086) 以及相应补丁。

您可以在下列地址看到微软安全公告的详细内容:

http://www.microsoft.com/technet/security/bulletin/ms00-086.asp

补丁程序可以在下列地址下载:

. Microsoft IIS 5.0:

* 英文版:  
  http://www.microsoft.com/Downloads/Release.asp?ReleaseID=25547
* 简体中文版:  
  http://www.microsoft.com/Downloads/Release.asp?ReleaseID=25580
* 繁体中文版:
  http://www.microsoft.com/Downloads/Release.asp?ReleaseID=25581
* 德文版:
  http://www.microsoft.com/Downloads/Release.asp?ReleaseID=25582
* 日文版:  
  http://www.microsoft.com/Downloads/Release.asp?ReleaseID=25583

浏览次数:6314
严重程度:0(网友投票)
本安全漏洞由绿盟科技翻译整理,版权所有,未经许可,不得转载
绿盟科技给您安全的保障