首页 -> 安全研究

安全研究

绿盟月刊
绿盟安全月刊->第29期->技术专题
期刊号: 类型: 关键词:
WEB服务器常见漏洞介绍

作者:analysist <analysist@nsfocus.com>
主页:http://www.nsfocus.com
日期:2002-03-18

如果不能写出点新东西,那么就是该总结的时候了。

    这篇文章的目的就是向大家介绍WEB服务器的常见漏洞,相信看了这篇文章自己也能试着发现一些WEB服务器的漏洞了。不过需要记住的是,不要为了寻找漏洞而寻找漏洞。另外,即使你找到了漏洞,是否能够利用还是另外一回事。

    WEB服务器存在的主要漏洞包括物理路径泄露,CGI源代码泄露,目录遍历,执行任意命令,缓冲区溢出,拒绝服务,条件竞争和跨站脚本执行漏洞,和CGI漏洞有些相似的地方,但是更多的地方还是有着本质的不同。不过无论是什么漏洞,都体现着安全是一个整体的真理,考虑WEB服务器的安全性,必须要考虑到与之相配合的操作系统。

    下面我就开始一一介绍这些漏洞,为了更易于理解,我在介绍每种漏洞时都会附上几个链接,从中你可以得到存在相同漏洞的WEB服务器的更详细信息。

【物理路径泄露】
    物理路径泄露一般是由于WEB服务器处理用户请求出错导致的,如通过提交一个超长的请求,或者是某个精心构造的特殊请求,亦或是请求一个WEB服务器上不存在的文件。这些请求都有一个共同特点,那就是被请求的文件肯定属于CGI脚本,而不是静态HTML页面。
    
    还有一种情况,就是WEB服务器的某些显示环境变量的程序错误的输出了WEB服务器的物理路径,这应该算是设计上的问题。
    一些相关的链接:
    http://security.nsfocus.com/showQuery.asp?bugID=2008
    http://online.securityfocus.com/bid/1531
    
【CGI源代码泄露】
    CGI源代码泄露的原因比较多,例如大小写,编码解码,附加特殊字符或精心构造的特殊请求等都可能导致CGI源代码泄露。
    
    下面是一些示例请求:
    http://www.host.com/index.jsP
    http://www.host.com/index%2ejsp
http://www.host.com/index.js%50
    http://www.host.com/index.js%70
    http://www.host.com/index.jsp%00
http://www.host.com/index.jsp%20
    http://www.host.com/index.jsp%2e
    http://www.host.com/index.jsp%2f
    http://www.host.com/index.jsp%3f
    http://www.host.com/index.jsp%5c
    http://www.host.com/index.jsp%81
    http://www.host.com/./index.jsp
    http://www.host.com/index.asp:$DATA
    http://www.host.com/index.asp+.htr
    http://www.host.com/index.asp…………………htr
    这些请求都可能导致CGI源代码泄露。
    
    以下是一些相关链接:
    http://security.nsfocus.com/showQuery.asp?bugID=519
    http://security.nsfocus.com/showQuery.asp?bugID=754
    http://security.nsfocus.com/showQuery.asp?bugID=1130
    http://security.nsfocus.com/showQuery.asp?bugID=1181
    http://security.nsfocus.com/showQuery.asp?bugID=1334
    http://security.nsfocus.com/showQuery.asp?bugID=621
    
【目录遍历】
    目录遍历对于WEB服务器来说并不多见,通过对任意目录附加“../”,或者是在有特殊意义的目录附加“../”,或者是附加“../”的一些变形,如“..\”或“..//”甚至其编码,都可能导致目录遍历。前一种情况并不多见,但是后面的几种情况就常见得多,去年非常流行的IIS二次解码漏洞和UNICODE解码漏洞都可以看作是变形后的编码。
    
    下面是一些相关链接:
    http://security.nsfocus.com/showQuery.asp?bugID=1429
    http://security.nsfocus.com/showQuery.asp?bugID=934
    http://security.nsfocus.com/showQuery.asp?bugID=290
    
【执行任意命令】
    执行任意命令即执行任意操作系统命令,主要包括两种情况。一是通过遍历目录,如前面提到的二次解码和UNICODE解码漏洞,来执行系统命令。另外一种就是WEB服务器把用户提交的请求作为SSI指令解析,因此导致执行任意命令。
    
    下面是一些相关链接:
    http://security.nsfocus.com/showQuery.asp?bugID=934
    http://security.nsfocus.com/showQuery.asp?bugID=1429
    http://online.securityfocus.com/bid/3939
    
【缓冲区溢出】
    缓冲区溢出漏洞想必大家都很熟悉,无非是WEB服务器没有对用户提交的超长请求没有进行合适的处理,这种请求可能包括超长URL,超长HTTP Header域,或者是其它超长的数据。这种漏洞可能导致执行任意命令或者是拒绝服务,这一般取决于构造的数据。
    
    下面是一些相关链接:
    http://security.nsfocus.com/showQuery.asp?bugID=1749
    http://security.nsfocus.com/showQuery.asp?bugID=1417
    
【拒绝服务】
    拒绝服务产生的原因多种多样,主要包括超长URL,特殊目录,超长HTTP Header域,畸形HTTP Header域或者是DOS设备文件等。由于WEB服务器在处理这些特殊请求时不知所措或者是处理方式不当,因此出错终止或挂起。
    
    下面是一些相关链接:
    http://security.nsfocus.com/showQuery.asp?bugID=254
    http://security.nsfocus.com/showQuery.asp?bugID=1747
    http://security.nsfocus.com/showQuery.asp?bugID=1746
    http://security.nsfocus.com/showQuery.asp?bugID=2061
    http://security.nsfocus.com/showQuery.asp?bugID=1614
    http://security.nsfocus.com/showQuery.asp?bugID=1313
    http://security.nsfocus.com/showQuery.asp?bugID=1441
    http://security.nsfocus.com/showQuery.asp?bugID=1745
    
【条件竞争】
    这里的条件竞争主要针对一些管理服务器而言,这类服务器一般是以system或root身份运行的。当它们需要使用一些临时文件,而在对这些文件进行写操作之前,却没有对文件的属性进行检查,一般可能导致重要系统文件被重写,甚至获得系统控制权。
    
【跨站脚本执行漏洞】
    跨站脚本漏洞已经介绍得够多,这里就不赘述了,有问题可以参考我以前写过的一篇文章http://magazine.nsfocus.com/detail.asp?id=1217
    
基本就是这些内容,有问题给我写信。

版权所有,未经许可,不得转载