CVE:CVE-2003-0224
CNNVD:CNNVD-200306-007
Microsoft IIS 5.0(Internet Infomation Server 5)是Microsoft Windows 2000自带的一个网络信息服务器。IIS支持SSI(Server Side Include)功能。ssinc.dll就是一个SSI解释器。默认情况下，扩展名 .stm、.shtm 和 .shtml 被映射到解释程序(ssinc.dll)。
IIS 4.0/5.0所带的一个动态链接库(ssinc.dll)在处理包含文件时存在一个缓冲区溢出漏洞，本地攻击者可能利用这个漏洞获取Local System权限。
SSI支持"#include"指令，通常的使用方式是：
<!--#include file="文件名"-->
ssinc.dll在处理"#include"指令时，会首先试图获取该shtml文件的物理路径，因此它会将URI请求拷贝到一个固定大小的缓冲区中，例如当请求下列shtml文件时：
http://iishost/abc/test.shtml
它会将"/abc/test.shtml"保存到一个固定大小的缓冲区中。由于在拷贝时没有对shtml文件名的长度进行检查，导致一个栈缓冲区溢出。
NSFocus安全小组曾发现过一个类似的问题，参见
http://www.nsfocus.net/index.php?act=advisory&do=view&adv_id=17，
相应的微软安全公告为
http://www.microsoft.com/technet/security/bulletin/ms01-044.asp。
本漏洞是在原来的那个漏洞之前发生的。
IIS检测了过长的shtml文件名以避免缓冲区溢出，然而遗憾地是IIS的处理方法是将长文件名截短至合法长度然后试图打开它，而打开之后ssinc.dll仍然会使用初始的URI进行拷贝。因此通过创建一个特定长度的WEB文件就有可能绕过这个检查，然后再请求一个长文件名的shtml文件就会产生溢出，可导致IIS停止响应。如果精心地构造溢出数据，就可能改变程序流程，并以local System权限执行任意代码。
攻击者要进行攻击需要有两个条件：
1. 攻击者需要有权限在web目录下创建文件。
2. 攻击者需要能够通过web服务访问创建的文件。
solution:Upgrade microsoft internet_information_services to a higher version than 5.0,and avoid the version 5.0