zoukankan      html  css  js  c++  java
  • Slow HTTP Denial of Service Attack

    一、漏洞描述

    利用HTTP POST请求时,指定一个非常大的content-length,然后以很低的速度发包,比如10-100s发一个字节并保持这个连接不断开。当客户端连接数达到一定程度,占用服务器的所有可用连接,从而导致DOS

    二、漏洞利用

    渗透工具:slowhttptest

    下载地址:https://github.com/shekyan/slowhttptest.git

    安装过程:

    切换到slowhttptest解压目录,执行以下操作

    ./configure

    make

    make install

    注意事项:安装此工具要先安装开发工具包

    可以参考https://www.cnblogs.com/573583868wuy/p/6799311.html

    安装完成后使用以下命令开始攻击

    slowhttptest -c 1000 -B -g -o my_body_stats -i 110 -r 200 -s 8192 -t FAKEVERB -u http://mysite -x 10 -p 3

    当再次访问网站时,看到加载缓慢或者一直在加载就说明攻击成功。

    工具用法:

    -a开始值范围说明符用于范围头测试

    -b 将字节限制的范围说明符用于范围头测试

    - c的连接数限制为65539

    - d proxy host:port用于指导所有流量通过web代理

    - e proxy host:port端口用于指导只有探针交通通过web代理

    - h,B,Rx指定减缓在头部分或在消息体,- R 允许范围检验,使慢读测试- x

    - g生成统计数据在CSVHTML格式,模式是缓慢的xxxcsv / html,其中xxx是时间和日期

    - i seconds秒间隔跟踪数据在几秒钟内,每个连接

    - k管道因子次数重复请求在同一连接慢读测试如果服务器支持HTTP管道内衬。

    - l在几秒钟内,秒测试时间

    - n秒间隔从接收缓冲区读取操作

    - o文件定义输出文件路径和/或名称,如果指定有效- g

    - p秒超时等待HTTP响应在探头连接后,服务器被认为是不可访问的

    - r seconds连接速度

    - s字节值的内容长度标题详细说明,如果指定- b

    - t verb自定义

    - u URL目标URL,相同的格式键入浏览器,eg https://host[:port]/

    - v level冗长等级0 - 4的日志

    - w字节范围广告的窗口大小会选择从

    - x字节最大长度的跟踪数据结束

    - y字节范围广告的窗口大小会选择从

    - z字节从接收缓冲区读取字节与单一的read()操作

    三、解决方法

    方法一:对web服务器的http头部传输的最大许可时间进行限制,修改成最大许可时间为20

    tomcat为例,打开server.xml找到

      <Connector port="8080" protocol="HTTP/1.1"

      connectionTimeout="20000"

      redirectPort="8443" />

      将其中的connectionTimeout="20000"改为connectionTimeout="8000",其单位是毫秒。

    方法二:由于Apache易受此攻击,因此我们应该采取一些预防措施。我们需要安装 名为mod_antilorisApache模块。该模块根据每个IP限制处于读状态的线程数,并保护 Apache不受Slowloris攻击。安装指令如下:

    安装httpd-devel

    yum install -y httpd-devel

    安装编译模块gcc

    yum install gcc -y

    切换到一下目录

    cd /usr/local/src/

    从网上下载mod_antilorisApache模块

    wget sourceforge.net/projects/mod-antiloris/files/mod_antiloris-0.4.tar.bz2

    解压

    tar -xf mod_antiloris-0.4.tar.bz2

    调用apxs编译安装mod_antiloris.c文件

    apxs -a -i -c mod_antiloris.c 

    重启httpd服务

    service httpd restart

    检验antiloris进程是否启用

    httpd -M |grep antiloris

    完成

  • 相关阅读:
    Java总结(三)之String、StringBuffer、StringBuilder区别
    Java总结(二)之字符串常用操作
    Java总结(一)之四类八种数据类型
    schema.xml的配置
    MySQL server has gone away问题得解决方案
    如何在Java中将Excel转化为XML格式文件
    FileItemFactory 接口的介绍
    小练习2
    小练习
    while else 练习题
  • 原文地址:https://www.cnblogs.com/panisme/p/8445121.html
Copyright © 2011-2022 走看看