首页
社区
课程
招聘
[原创]Web服务器面临的五种应用层DOS威胁
发表于: 2012-2-25 13:51 5427

[原创]Web服务器面临的五种应用层DOS威胁

2012-2-25 13:51
5427
声明:任何人只能对经过授权的服务器进行安全测试。

嫌弃帖子格式不好的可以下载word附件。

经典的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的配置有关。望知道答案的大牛解释。

[课程]FART 脱壳王!加量不加价!FART作者讲授!

上传的附件:
收藏
免费 0
支持
分享
最新回复 (7)
雪    币: 139
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
谢谢LZ的分享。
2012-2-27 13:50
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
gie
3
先回复个  再仔细看。
2012-2-29 00:10
0
雪    币: 6771
活跃值: (2595)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
en ,仔细看过了,不错。
2012-3-21 17:05
0
雪    币: 1
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
汗 http数据包还能这样用
2012-3-23 22:18
0
雪    币: 201
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
谢谢分想。。。正在学习中
2012-3-24 21:58
0
雪    币: 54
活跃值: (10)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
7
比较全面,分析透彻,多谢分享
2013-9-22 16:02
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
谢谢分享
2013-10-30 15:30
0
游客
登录 | 注册 方可回帖
返回
//