首页 -> 安全研究

安全研究

安全漏洞
Microsoft IIS 4.0/5.0 Unicode解码错误可远程执行命令漏洞(MS00-078)

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

受影响系统:
Microsoft IIS 4.0
    - Microsoft Windows NT 4.0 SP6a
    - Microsoft Windows NT 4.0 SP6
    - Microsoft Windows NT 4.0 SP5
    - Microsoft Windows NT 4.0 SP4
    - Microsoft Windows NT 4.0 SP3
    - Microsoft Windows NT 4.0 SP2
    - Microsoft Windows NT 4.0 SP1
    - Microsoft Windows NT 4.0
Microsoft IIS 5.0
    - Microsoft Windows 2000 Server SP2
    - Microsoft Windows 2000 Server SP1
    - Microsoft Windows 2000 Server
    - Microsoft Windows 2000 Professional SP2
    - Microsoft Windows 2000 Professional SP1
    - Microsoft Windows 2000 Professional
    - Microsoft Windows 2000 Datacenter Server SP2
    - Microsoft Windows 2000 Datacenter Server SP1
    - Microsoft Windows 2000 Datacenter Server
    - Microsoft Windows 2000 Advanced Server SP2
    - Microsoft Windows 2000 Advanced Server SP1
    - Microsoft Windows 2000 Advanced Server
Microsoft Personal Web Server 4.0
    - Microsoft Windows NT 4.0
    - Microsoft Windows 98
    - Microsoft Windows 95
不受影响系统:
Microsoft IIS 5.0
    - Microsoft Windows 2000 Server SP3
Microsoft IIS 5.0
    - Microsoft Windows 2000 Professional SP3
Microsoft IIS 5.0
    - Microsoft Windows 2000 Datacenter Server SP3
Microsoft IIS 5.0
    - Microsoft Windows 2000 Advanced Server SP3
描述:
BUGTRAQ  ID: 1806
CVE(CAN) ID: CVE-2000-0884

IIS是Microsoft出品的一个广泛应用的Internet Web服务器软件,随Windows NT和Windows 2000捆绑发售。默认情况下IIS的某些目录是允许通过提交HTTP请求执行可执行文件的。

NSFOCUS安全小组发现IIS 4.0和IIS 5.0在Unicode字符解码的实现中存在一个安全漏洞,导致用户可以远程通过IIS执行任意命令。当IIS打开文件时,如果该文件名包含unicode字符,它会对其进行解码,如果用户提供一些特殊的编码,将导致IIS错误的打开或者执行某些Web根目录以外的文件和程序。

对于IIS 5.0/4.0中文版,当IIS收到的URL请求的文件名中包含一个特殊的编码例如"%c1%hh"或者"%c0%hh",它会首先将其解码变成:0xc10xhh, 然后尝试打开这个文件,Windows系统认为0xc10xhh可能是Unicode编码,因此它会首先将其解码,如果 0x00<= %hh < 0x40的话,采用的解码的格式与下面的格式类似:

%c1%hh -> (0xc1 - 0xc0) * 0x40 + 0xhh
%c0%hh -> (0xc0 - 0xc0) * 0x40 + 0xhh

因此,利用这种编码,我们可以构造很多字符,例如:

%c1%1c -> (0xc1 - 0xc0) * 0x40 + 0x1c = 0x5c = '/'
%c0%2f -> (0xc0 - 0xc0) * 0x40 + 0x2f = 0x2f = '\'

攻击者可以利用这个漏洞来绕过IIS的路径检查,去执行或者打开任意的文件。

Rain Forest Puppy <rfp@WIRETRIP.NET>测试发现对于英文版的IIS 4.0/5.0,此问题同样存在,只是编码格式略有不同,变成"%c0%af"或者"%c1%9c"。

<*来源:Nsfocus Security Team (security@nsfocus.com
  
  链接:http://www.microsoft.com/technet/security/bulletin/MS00-078.asp
        http://www.macromedia.com/v1/handlers/index.cfm?ID=17965&Method=Full
*>

测试方法:

警 告

以下程序(方法)可能带有攻击性,仅供安全研究与教学之用。使用者风险自负!

NSFOCUS Security Team (security@nsfocus.com)提供了如下测试方法:

(1) 如果系统包含某个可执行目录,就可能执行任意系统命令。下面的URL可能
列出当前目录的内容:

http://www.victim.com/scripts/..%c1%1c../winnt/system32/cmd.exe?/c+dir

(2) 利用这个漏洞查看系统文件内容也是可能的:

http://www.victim.com/a.asp/..%c1%1c../..%c1%1c../winnt/win.ini

建议:
临时解决方法:

如果您不能立刻安装补丁或者升级,NSFOCUS建议您采取以下措施以降低威胁:

* 如果不需要可执行的CGI,可以删除可执行虚拟目录,例如 /scripts等等。

* 如果确实需要可执行的虚拟目录,建议可执行虚拟目录单独在一个分区。

厂商补丁:

Microsoft
---------
Microsoft已经为此发布了一个安全公告(MS00-078)以及相应补丁:
MS00-078:Patch Available for "Web Server Folder Traversal" Vulnerability
链接:http://www.microsoft.com/technet/security/bulletin/MS00-078.asp

补丁下载:

Microsoft IIS 4.0:
http://www.microsoft.com/ntserver/nts/downloads/critical/q269862/default.asp

Microsoft IIS 5.0:
http://www.microsoft.com/windows2000/downloads/critical/q269862/default.asp

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