首页 -> 安全研究

安全研究

绿盟月刊
绿盟安全月刊->第21期->最新漏洞
期刊号: 类型: 关键词:
Microsoft IIS CGI文件名错误解码漏洞

日期:2001-05-15

CVE CAN ID : CAN-2001-0333

受影响的软件及系统:
==================

- Microsoft IIS 4.0
- Microsoft IIS 5.0

不受影响的软件及系统:
===================
- Windows IIS 4.0 (sp6/sp6a 没有安装其他新的hotfix)

综述:
=====

NSFOCUS安全小组发现微软IIS 4.0/5.0在处理CGI程序文件名时存在一个安全
漏洞,由于错误地对文件名进行了两次解码,攻击者可能利用这个漏洞执行任意
系统命令。

漏洞分析:
==========

IIS在加载可执行CGI程序时,会进行两次解码。第一次解码是对CGI文件名进行http
解码,然后判断此文件名是否为可执行文件,例如检查后缀名是否为".exe"或".com"
等等。在文件名检查通过之后,IIS会再进行第二次解码。正常情况下,应该只对该
CGI的参数进行解码,然而,IIS错误地将已经解码过的CGI文件名和CGI参数一起进行
解码。这样,CGI文件名就被错误地解码了两次。

通过精心构造CGI文件名,攻击者可以绕过IIS对文件名所作的安全检查,例如对"../"
或"./"的检查,在某些条件下,攻击者可以执行任意系统命令。

例如,对于'\'这个字符,正常编码后是%5c。这三个字符对应的编码为:
'%' = %25
'5' = %35
'c' = %63

如果要对这三个字符再做一次编码,就可以有多种形式,例如:
%255c
%%35c
%%35%63
%25%35%63
...

因此,"..\"就可以表示成"..%255c"或"..%%35c"等等形式。

在经过第一次解码之后,变成"..%5c"。IIS会认为这是一个正常的字符串,
不会违反安全规则检查。而在第二次被解码之后,就会变成"..\"。因此
攻击者就可以使用"..\"来进行目录遍历,执行web目录之外的任意程序。


漏洞测试:
==========

例如,如果TARGET存在一个虚拟可执行目录(scripts),并且它与
windows系统在同一驱动器上。那么提交类似下列请求:

http://TARGET/scripts/..%255c..%255cwinnt/system32/cmd.exe?/c+dir+c:\

就会列出C:\的根目录。

当然,对于'/'或者'.'做变换同样可以达到上面的效果。
例如:"..%252f", ".%252e/"...

注意:攻击者只能以IUSER_machinename用户的权限执行命令。

临时解决方法:
===========

1、如果不需要可执行的CGI,可以删除可执行虚拟目录,例如 /scripts等等。
2、如果确实需要可执行的虚拟目录,建议将可执行虚拟目录单独放在一个分区
3、将所有可被攻击者利用的命令行工具移到另外一个目录中并禁止GUEST组
    访问。

厂商状态:
==========

2001.3.27  我们将这个问题通报给了微软公司。
2001.4.01  微软告知重现了这个问题
2001.4.16  微软提供了补丁程序供测试,测试发现此问题已被解决
2001.4.23  微软请求我们延迟2个星期发布公告以等待更完善的测试
2001.4.30  微软告知我们还须再推迟一个星期发布
2001.5.14  微软已就此发布了一个安全公告(MS01-026)以及相应补丁

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

http://www.microsoft.com/technet/security/bulletin/ms01-026.asp

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

. Microsoft IIS 4.0:
http://www.microsoft.com/Downloads/Release.asp?ReleaseID=29787

. Microsoft IIS 5.0:
http://www.microsoft.com/Downloads/Release.asp?ReleaseID=29764


附加信息:
==========

通用漏洞批露(Common Vulnerabilities and Exposures)组织CVE已经为此问题
分配了一个候选名 CAN-2001-0333。此名字是为了收录进CVE列表做候选之用,
(http://cve.mitre.org)CVE列表致力于使安全问题的命名标准化。候选名在被
正式加入CVE列表之前可能会有较大的变化。

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

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

关 于 我 们
===========

中联绿盟信息技术(北京)有限公司成立于2000年3月,是国内专业从事网络安
全服务的高科技企业,致力于网络安全技术研究、网络安全产品开发,提供由网
络系统入侵检测、操作系统安全、网络服务安全、程序安全为重点的整体网络安
全方案,并协助建立严密的网络安全制度,提高国内的网络安全水平,为
客户提供强有力的安全保障。

  中联绿盟信息技术(北京)有限公司成立后,其安全技术研究部门对国内
外最新的网络系统安全漏洞进行最及时和最紧密的跟踪,对重大安全问题更成
立专项研究小组进行技术攻关,取得了一系列在国内、甚至是国外处于领先水
平的优秀成果。安全产品开发部门具有开发网络安全评估系统、网络/系统防火
墙、入侵监测系统、内容过滤系统等高技术含量网络安全产品的技术实力和经
验,已经推出了具有国际领先水平的安全产品系列。

  中联绿盟信息技术(北京)有限公司定位于网络系统安全集成商,提供全
面的网络安全整体解决方案、先进的网络安全技术服务和优秀的网络安全产品。

中联绿盟信息技术(北京)有限公司联系方式:

北京总部:
地址:北京朝阳区北三环东路8号静安中心8072室
邮编:100028
电话:010-64601502
传真:010-64602097
email:webmaster@nsfocus.com

上海分公司:
地址:上海四川中路126弄18号元芳商务中心202B室
邮编:200001
电话:021-33130516


广州分公司:
地址:广州市环市东路339号广东国际大厦A附楼24B
邮编:510095
电话:020-83311175 83311176
传真:020-83319025


©版权所有 1999-2001,中联绿盟信息技术公司
版权所有,未经许可,不得转载