(2012-09-20 06:41:50)
Web分布式创作和版本控制协议(WebDAV,Web Distributed Authoring and Versioning)是超文本传输协议的一组扩展,为 Internet 上计算机之间的编辑和文件管理提供了标准。WebDAV 所使用的 Windows 组件中存在一个安全弱点,其原因是该组件包含未经检查的缓冲。攻击者通过将特殊构成的http请求发送到运行IIS的计算机可以利用此弱点。该请求可能导致服务器发生故障或者执行攻击者所选择的代码。代码将在 IIS 服务的安全上下文中运行(默认情况下在 LocalSystem 上下文中运行)。
微软已为此弱点提供了修补程序并建议客户立即安装该修补程序。微软还提供了其他的工具和预防措施,客户在评估该修补程序的影响和兼容性时可以使用这些工具和措施来阻止此弱点被利用。
漏洞分析
我们经过研究发现,WebDAV组件不充分检查传递给部分系统组件的数据,它在处理中使用了ntdll.dll中的一些函数,而这些函数存在一个缓冲区溢出漏洞。通过对WebDAV的畸形请求可以触发这个溢出。利用这个漏洞可以获得Local System权限,这意味着,入侵者可以获得主机的完全控制能力。
虽然WebDAV是通过IIS来利用这个漏洞的,但是漏洞本身并不是IIS造成的,而是ntdll.dll里面的一个API函数造成的。也就是说,很多调用这个API的应用程序都存在这个漏洞。整个漏洞的引用关系是这样的:IIS→WebDAV→kernel32! GetFileAttributesExW→ntdll! RtlDosPathNameToNtPathName_U(溢出)。其中GetFileAttributesExW是一个很常用的、用来得到文件属性的API函数,它的第一个参数是文件名,并且随后调用ntdll.dll中的RtlDosPathNameToNtPathName_U函数来处理这个文件名。如果给一个超长的文件名,就会导致RtlDosPathNameTo NtPathName_U函数发生溢出,这个溢出从本质上来说是一个短整型数溢出,而后导致了堆栈溢出。
受影响的系统
受这种溢出影响的系统有Microsoft IIS 5.0、Microsoft Windows 2000 Server/ Professional及相应的SP3/SP2/SP1、Microsoft Windows 2000 Datacenter Server及相应的SP3/SP2/SP1、Microsoft Windows 2000 Advanced Server及相应的SP3/SP2/SP1。
漏洞修补
1、 打厂商补丁。Microsoft 已经为此发布了一个安全公告(MS03-07)以及相应补丁。补丁下载(Microsoft Windows 2000):http://microsoft.com/downloads/details.asp。
2、 从http://202.102.240.73/iitcc/webdav.zip下载后安装上Q815021_W2K_sp4_x86_CN.EXE进行修补或使用webdav.reg对注册表进行修改,关闭WebDAV功能。
总结
这是一个典型的整数溢出导致的堆栈溢出。这个漏洞的另一个特点是,它是Unicode转换之后的溢出,这大大增加了利用的难度。目前,在国内各大黑客网站上已经公布了相应的溢出程序,溢出的成功率较高。经我们测试,现在网上运行Windows 2000的计算机的绝大部分Web服务器均存在此漏洞。为保证互联网的稳定,请及时给Windows 2000服务器打上补丁。
作者:南阳理工学院 赵雪 庞彦林
中华人民共和国备案号:浙ICP备10018243号