0
点赞
收藏
分享

微信扫一扫

Web服务器面临的五种应用层DOS威胁


声明:任何人只能对经过授权的服务器进行安全测试。


经典的DOS有:ICMP flood ,SYN flood,UDP flood,Teardrop attacks ,Spoofing attacks。这里总结一下Web服务器面临的五中应用层的DOS 威胁。主要是介绍基本原理和工具的简单实用方法。每个***方法我列出了参考信息链接地址,要深入了解这类***的话,建议看看链接地址。


威胁一,slowloris(懒猴)


原理:HTTP的一个请求包括:

Request = Request-Line

*(( general-header

| request-header

| entity-header ) CRLF)

CRLF

[ message-body ]

例如:

GET /index.php HTTP 1.1(\r\n)

HOST: www.site.com (\r\n)

(\r\n)

按照RFC规定,一个正常的HTTP请求是以2个\r\n结束。想想如果发送大量只有一个\r\n的请求,会发生什么样的情况。对,服务器会一直等待,直到超时。等待就会占用一个线程,而服务器的线程使用数量是有上限的,达到上限以后就很难处理新的http请求. 达到拒绝服务的目的。

***方法:

当然你可以根据自己的理解写程序来来发送这些诡异的HTTP请求。也有现成的工具可以用——Slowloris.pl,地址:​​http://ha.ckers.org/slowloris/​​。 为了更好的理解每个输入参数的用法,建议先把连接中的文章先看看。这里举几个例子:

建立500个socket连接,DOS 服务器192.168.1.123的80端口,设置connection的超时时间为200秒。

slowloris.pl -dns 192.168.1.123 -port 80 -timeout 200 -num 500

你很可能不知道连接超时时间,那么就用下面的命令,让Slowloris自动帮你完成吧。

slowloris.pl -dns 192.168.1.123 -port 80 -test

这是一个慢启动的过程,要达到效果需要一段时间。所以建议最好是自己估计一个时间告诉slowloris。Timeout时间太长,可能被服务器主动断开连接,时间太短就需要发送更多数据包,带宽消耗更多。

DOS效果:

服务器内存使用:略有增加

服务器CPU使用:正常

服务器响应:不能响应正常请求

Netstat命令可以查看到大量的连接:


服务器将直接RST消息,拒绝新的连接:



另外:

Slowloris能吃的服务器:Apache 1.x, Apache 2.x, dhttpd。

Slowloris不能吃的服务器:IIS6.0, IIS7.0, lighttpd, nginx, Cherokee, Squid。

如果你perl运行出错,可能是你没安装相关支持包,可以注释掉Slowloris.pl 中相关代码。

如果你运行在windows上,socket的最大连接数可能被限制了,导致dos不成功。


威胁二,HTTP POST DOS


原理:向服务器发送POST请求,告诉它将要POST 的数据为n,服务器会开辟长度为n的内存空间等待接收数据。当n足够大,POST请求足够多的时候,这种***会吃到服务器大量内存,从而影响服务器性能。

POST数据包:

POST /openemr/interface/login/login_frame.php HTTP/1.1

Host: 10.200.119.198

User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Trident/4.0;

Connection: keep-alive

Content-Length: 1000000

Content-Type: application/x-www-form-urlencoded

工具:

明白了原理,方法就变得很简单了,写程序30行代码搞定。线程的***也有:

​​ https://www.owasp.org/index.php/OWASP_HTTP_Post_Tool​​ DOS效果:

服务器内存使用:激增

服务器CPU使用:激增

服务器响应:不能响应正常请求


威胁三,HTTP RANGE DOS


只需要一个请求数据包就能折腾服务器的一种***方式。

HTTP头字段Range用于文件分段下载。迅雷,PDF在线阅读都使用了这个功能。这个字段也可以被用于DOS服务器。

***数据包如下:

HEAD /file.rmvb HTTP/1.1

Host: www.site.com

Range: bytes=0-,5-0,5-1,5-2,5-3,5-4,,,,,

Accept-Encoding: gzip

Connection: close

Web服务器收到这个包是,会将file.rmvb文件大量的小片段,然后使用gzip加压下片段。分片后加压过程会消耗服务器大量资源,造成DOS。

参考:http://www.secanalyst.org/?p=350

参考:http://www.exploit-db.com/exploits/17696/


威胁四,HTTP Slow Read DOS


原理:向Web服务器发送正常合法的read请求,比如下载文件。在文件下载时,将TCP滑动窗口size设为1或者2,这样服务器就会以非常缓慢的速度发送文件,文件将长期滞留在服务器内存中,消耗资源,造成DOS。

工具:http://code.google.com/p/slowhttptest/

参考:http://www.theinfoboom.com/articles/slow-read-attack-a-new-http-denial-of-service-attack/


威胁五,hash碰撞DOS


参考:http://bbs.pediy.com/showthread.php?t=145634

实验过的朋友可能发现,这个DOS会造成服务CPU利用率100%,但是某些服务器依然能正常响应HTTP请求。原因我目前还没找到,这可能与apache或者php的配置有关。望知道答案的大牛解释。

作 者: ctaotao
时 间: 2012-02-25,13:51:32

链 接: http://bbs.pediy.com/showthread.php?t=146952

举报

相关推荐

0 条评论