NSFOCUS安全小组发现微软IIS 4.0/5.0在处理CGI程序文件名时存在一个安全漏洞,攻击者可能利用这个漏洞查看系统文件或者执行任意系统命令。受影响的软件及系统:
Microsoft IIS 4.0 (<SP6)、 Microsoft IIS 5.0。 不受影响的软件及系统:Microsoft IIS 4.0
( SP6/SP6a )漏洞分析: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目录以外的文件,依赖于解释器的处理方式,攻击者可能获取文件的部分或者全部内容。
漏洞测试:
由于此漏洞比较严重危险,我们将在一段时间后公布测试代码。
临时解决方法:
确保没有不必要的批处理文件,并保证批处理文件不与任何的虚拟可执行目录在同一个驱动器上
我们于2000年10月20日将此问题通知微软。微软已就此发布了一个安全公告(MS00-086) 以及相应补丁。您可以在下列地址看到微软安全公告的详细内容:
http://www.microsoft.com/technet/security/bulletin/ms00-086.asp
补丁程序可以在下列地址下载:
. Microsoft IIS 5.0:
* English:
http://www.microsoft.com/Downloads/Release.asp?ReleaseID=25547
* Simplified Chinese:
http://www.microsoft.com/Downloads/Release.asp?ReleaseID=25580
* Traditional Chinese:
http://www.microsoft.com/Downloads/Release.asp?ReleaseID=25581
* German:
http://www.microsoft.com/Downloads/Release.asp?ReleaseID=25582
* Japanese:
http://www.microsoft.com/Downloads/Release.asp?ReleaseID=25583
附加信息:
通用漏洞批露(Common Vulnerabilities and Exposures)组织CVE已经为此问题分配了一个候选名 CAN-2000-0886。此名字是为了收录进CVE列表做候选之用,(http://cve.mitre.org)CVE列表致力于使安全问题的命名标准化。候选名在被正式加入CVE列表之前可能会有较大的变化。
相关文章:
【相关论坛】 【发表评论】