slowHTTPtest 攻击方法 修复方案


日期:2018-05-28日 11:41:59
作者:Bay0net
介绍:学习一下 slowHTTPtest 的攻击及防御。


0x01、 安装

下载链接
https://github.com/shekyan/slowhttptest

安装介绍
https://github.com/shekyan/slowhttptest/wiki/InstallationAndUsage

KALI

git clone https://github.com/shekyan/slowhttptest
cd slowhttptest
./configure
make

MAC:
brew update && brew install slowhttptest

0x02、攻击模式

服务器在接收到请求时,完全接收以后才会处理请求,如果攻击者发送的比较缓慢或者发送的不完整,服务器会保留其连接,占用资源池,如果请求数量较多,就会形成 DOS 攻击。

2.1 三种攻击模式

1、slowloris:完整的http请求是以 \r\n\r\n 结尾,攻击时仅发送 \r\n,少发送一个 \r\n,服务器认为请求还未发完,就会一直等待直至超时。

slowhttptest -c 1000 -H -g -o my_header_stats -i 10 -r 200 -t GET -u "url" -x 24 -p 3

2、slow post:通过声明一个较大的content-length后,body缓慢发送,导致服务器一直等待。

slowhttptest -c 3000 -B -g -o my_body_stats -i 110 -r 200 -s 8192 -t FAKEVERB -u "url" -x 10 -p 3

3、slow read:向服务器发送一个正常合法的read请求,请求一个很大的文件,但把TCP滑动窗口设置得很小,服务器就会以滑动窗口的大小切割文件,然后发送,这是文件会长期存放在内存中,消耗资源。

slowhttptest -c 8000 -X -r 200 -w 512 -y 1024 -n 5 -z 32 -k 3 -u "url" -p 3

4、Range Header test:在 HTTP 请求的 RANGE HEADER 中包含大量字段,使得服务器在服务端将一个很小的文件分割成大量的更小的片段再压缩。分段压缩过程消耗大量的服务器资源,导致 DOS。

slowhttptest -R -u "url" -t HEAD -c 1000 -a 10 -b 3000 -r 500

5、测试的时候,添加代理

slowhttptest -c 1000 -X -r 1000 -w 10 -y 20 -n 5 -z 32 -u url -p 5 -l 350 -e lhost:lport

2.2 参数说明

 -g      在测试完成后,以时间戳为名生成一个CVS和HTML文件的统计数据
 -H      SlowLoris模式
 -B      Slow POST模式
 -R      Range Header模式
 -X      Slow Read模式
 -c      number of connections 测试时建立的连接数
 -d      HTTP proxy host:port  为所有连接指定代理
 -e      HTTP proxy host:port  为探测连接指定代理
 -i      seconds 在slowrois和Slow POST模式中,指定发送数据间的间隔。
 -l      seconds 测试维持时间
 -n      seconds 在Slow Read模式下,指定每次操作的时间间隔。
 -o      file name 使用-g参数时,可以使用此参数指定输出文件名
 -p      seconds 指定等待时间来确认DoS攻击已经成功
 -r      connections per second 每秒连接个数
 -s      bytes 声明Content-Length header的值
 -t      HTTP verb 在请求时使用什么操作,默认GET
 -u      URL  指定目标url
 -v      level 日志等级(详细度)
 -w      bytes slow read模式中指定tcp窗口范围下限
 -x      bytes 在slowloris and Slow POST tests模式中,指定发送的最大数据长度
 -y      bytes slow read模式中指定tcp窗口范围上限
 -z      bytes 在每次的read()中,从buffer中读取数据量

0x03、netstat 的相关操作

查看连接数
netstat -ant | grep $ip:80 | wc -l

查看当前连接数
netstat -ant | grep $ip:80 | grep EST | wc -l

0x04、修复方法

XAMPP 的配置路径

/opt/lampp/etc/httpd.conf
/opt/lampp/etc/original/httpd.conf
/opt/lampp/apache2/conf/httpd.conf

方法1:启用 Apache 的 reqtimeout_module 模块

配置文件里,默认启用了这个模块,
LoadModule reqtimeout_module modules/

在 httpd.conf 里面,添加上

mod_reqtimeout.so
<IfModule reqtimeout_module>
    RequestReadTimeout header=5-40,MinRate=500 body=20,MinRate=500
</IfModule>

?

再攻击的话,提示
?

也可以安装两个新的模块 mod_qosmod_security

<IfModule mod_qos.c>
 # handle connections from up to 100000 different IPs
 QS_ClientEntries 100000
 # allow only 50 connections per IP
 QS_SrvMaxConnPerIP 50
 # limit maximum number of active TCP connections limited to 256
 MaxClients 256
 # disables keep-alive when 180 (70%) TCP connections are occupied
 QS_SrvMaxConnClose 180
 # minimum request/response speed (deny slow clients blocking the server, keeping connections open without requesting anything
 QS_SrvMinDataRate 150 1200
</IfModule>

方法2:设置每个 IP 只能建立20个连接

iptables -A INPUT -p tcp --syn --dport 80 -m connlimit --connlimit-above 20 -j REJECT --reject-with tcp-reset

查看建立的连接数
netstat -ant | grep $ip:80 | grep EST | wc -l

设置完 iptables 后,立即生效,但是使用工具进行攻击的时候,还是会提示攻击成功,因为攻击者自己只能与服务器建立20个连接,超过20个连接后,会提示服务不可用。

?

服务器建立的连接数
?

修复方法3:Tomcat 的修复

Tomcat 在 server.xml 中修改超时时间即可
?

修改以后,攻击如下:
?

修复的效果立竿见影,攻击对服务器基本没影响了。。。

修复方式4:weblogic 的修复

console 控制台修改两个参数。
?

?

Reference

How To Mitigate Slow HTTP DoS Attacks in Apache HTTP Server - Acunetix

科普HTTP Slow Attack 和 Apache DOS 漏洞的修复 - 安大叔 - 博客园

原文地址:https://www.cnblogs.com/v1vvwv/p/slowHTTPtest-attack-and-defense.html

时间: 2024-08-04 17:58:24

slowHTTPtest 攻击方法 修复方案的相关文章

水平权限漏洞的修复方案

水平权限漏洞一般出现在一个用户对象关联多个其他对象(订单.地址等).并且要实现对关联对象的CRUD的时候.开发容易习惯性的在生成CRUD表单(或AJAX请求)的时候根据认证过的用户身份来找出其有权限的被操作对象id,提供入口,然后让用户提交请求,并根据这个id来操作相关对象.在处理CRUD请求时,往往默认只有有权限的用户才能得到入口,进而才能操作相关对象,因此就不再校验权限了.可悲剧的是大多数对象的ID都被设置为自增整型,所以攻击者只要对相关id加1.减1.直至遍历,就可以操作其他用户所关联的对

Bash漏洞批量检测工具与修复方案

&amp;amp;lt;img src="http://image.3001.net/images/20140928/14118931103311.jpg!small" title="shellshock-bug-bash-bashbug-938x535.jpg"/&amp;amp;gt;&amp;amp;lt;/strong&amp;amp;gt;&amp;amp;lt;/span&amp;amp;gt;&a

网站安全之逻辑漏洞检测 附漏洞修复方案

在网站安全的日常安全检测当中,我们SINE安全公司发现网站的逻辑漏洞占比也是很高的,前段时间某酒店网站被爆出存在高危的逻辑漏洞,该漏洞导致酒店的几亿客户的信息遭泄露,包括手机号,姓名,地址都被泄露,后续带来的损失很大,最近几年用户信息泄露的事件时有发生,给很多企业,酒店都上了一堂生动的安全课.关于网站逻辑漏洞的总结,今天跟大家详细讲解一下. 网站逻辑漏洞 用户的隐私信息属于数据的保护的最高级别,也是最重要的一部分数据,在逻辑漏洞当中属于敏感信息泄露,有些敏感信息还包括了系统的重要信息,比如服务器

OpenSSL漏洞转攻个人电脑 360首推修复方案

OpenSSL“心脏出血”漏洞危害辐射范围正在不断扩大.在思科.Juniper网络设备被曝受此漏洞影响后,Windows上大批软件也被发现存在漏洞,可被黑客利用攻击网民电脑,抓取密钥等隐私数据,而攻击代码已在国外技术网站GitHub上公开.对此360安全卫士于10日晚间紧急推出漏洞修复方案,是目前唯一可预防此漏洞的PC安全软件. “心脏出血”漏洞刚刚曝出时,黑客主要攻击的是电商等https网站,抓取网站用户的登陆账号和密码.cookie等数据;此后,大量VPN.邮件系统.FTP工具也被曝受漏洞影

Android热修复技术专题:来自微信、淘宝、支付宝、QQ空间的热修复方案

最近好多人都讨论关于热更新的话题,所以查询了一些资料看看 当一个App发布之后,突然发现了一个严重bug需要进行紧急修复,这时候公司各方就会忙得焦头烂额:重新打包App.测试.向各个应用市场和渠道换包.提示用户升级.用户下载.覆盖安装.有时候仅仅是为了修改了一行代码,也要付出巨大的成本进行换包和重新发布. 这时候就提出一个问题:有没有办法以补丁的方式动态修复紧急Bug,不再需要重新发布App,不再需要用户重新下载,覆盖安装?答案当然是有的,那就是最近涌现出来得热补丁方案,主要包括淘宝的Dexpo

【渗透测试】NSA Windows 0day漏洞+修复方案

这个漏洞是前段时间爆出来的,几乎影响了全球70%的电脑,不少高校.政府和企业都还在用Windows服务器,这次时间的影响力堪称网络大地震. ----------------------------------------------------------------------------------------------------------------------- 一.实验环境 本机IP:172.16.11.2  Windows 2003 本机IP:172.16.12.2  Kali

Struts2漏洞修复方案

近期Struts2被曝重要漏洞,此漏洞影响struts2.0-struts2.3所有版本,可直接导致服务器被远程控制从而引起数据泄漏,影响巨大,受影响站点以电商.银行.门户.政府居多. 官方描述:S2-016:https://cwiki.apache.org/confluence/display/WW/S2-016S2-017:https://cwiki.apache.org/confluence/display/WW/S2-017 官方建议修复方案:升级到最新版本 struts-2.3.15.

Linux Glibc库严重安全漏洞修复方案通知(腾讯开发者社区)

如何查看当前glibc的版本号? rpm -aq | grep glibc 尊敬的用户: 您好!2015年1月28日, 腾讯云安全情报监测到LinuxGlibc库存在一处严重安全漏洞,可以通过gethostbyname系列函数实现远程代码执行,获取服务器的控制权及Shell权限,漏洞详细点击这里查看. [影响版本]: Glibc2.2 ~ Glibc 2.18 [修复方案]:       1.通过官方渠道自助下载更新,升级到Glibc 2.19及其以上版本.官方已在Glibc 2.19及以上版本

网站安全之逻辑漏洞检测 附网站漏洞修复方案

在网站安全的日常安全检测当中,我们SINE安全公司发现网站的逻辑漏洞占比也是很高的,前段时间某酒店网站被爆出存在高危的逻辑漏洞,该漏洞导致酒店的几亿客户的信息遭泄露,包括手机号,姓名,地址都被泄露,后续带来的损失很大,最近几年用户信息泄露的事件时有发生,给很多企业,酒店都上了一堂生动的安全课.关于网站逻辑漏洞的总结,今天跟大家详细讲解一下.网站逻辑漏洞 用户的隐私信息属于数据的保护的最高级别,也是最重要的一部分数据,在逻辑漏洞当中属于敏感信息泄露,有些敏感信息还包括了系统的重要信息,比如服务器的