CVE:CVE-2000-0884
CNNVD:CNNVD-200012-156
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"。
solution:Upgrade microsoft internet_information_server to a higher version than 4.0,and avoid the version 4.0; Upgrade microsoft internet_information_services to a higher version than 5.0,and avoid the version 5.0