slowhttptest慢攻击工具介绍

简介: slowhttptest介绍Slowhttptest是依赖HTTP协议的慢速攻击DoS攻击工具,设计的基本原理是服务器在请求完全接收后才会进行处理,如果客户端的发送速度缓慢或者发送不完整,服务端为其保留连接资源池占用,大量此类请求并发将导致DoS。

slowhttptest介绍

Slowhttptest是依赖HTTP协议的慢速攻击DoS攻击工具,设计的基本原理是服务器在请求完全接收后才会进行处理,如果客户端的发送速度缓慢或者发送不完整,服务端为其保留连接资源池占用,大量此类请求并发将导致DoS。

攻击模式

slowloris:完整的http请求是以\r\n\r\n结尾,攻击时仅发送\r\n,少发送一个\r\n,服务器认为请求还未发完,就会一直等待直至超时。等待过程中占用连接数达到服务器连接数上限,服务器便无法处理其他请求。
slow http post:原理和slowloris有点类似,这次是通过声明一个较大的content-length后,body缓慢发送,导致服务器一直等待
slow read attack:向服务器发送一个正常合法的read请求,请求一个很大的文件,但认为的把TCP滑动窗口设置得很小,服务器就会以滑动窗口的大小切割文件,然后发送。文件长期滞留在内存中,消耗资源。这里有两点要注意:

  1. tcp窗口设置要比服务器的socket缓存小,这样发送才慢。
  2. 请求的文件要比服务器的socket缓存大,使得服务器无法一下子将文件放到缓存,然后去处理其他事情,而是必须不停的将文件切割成窗口大小,再放入缓存。同时攻击端一直说自己收不到。

slowhttptest安装

代码托管在https://github.com/shekyan/slowhttptest
可从源码编译安装

./configure
make && make install

参数说明

 -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中读取数据量

例子

slowloris模式:

 slowhttptest -c 1000 -H -g -o my_header_stats -i 10 -r 200 -t GET -u https://host.example.com/index.html -x 24 -p 3

slow post模式:

 $ slowhttptest -c 3000 -B -g -o my_body_stats -i 110 -r 200 -s 8192 -t FAKEVERB -u http://host.example.com/loginform.html -x 10 -p 3

slow read模式:

 $ slowhttptest -c 8000 -X -r 200 -w 512 -y 1024 -n 5 -z 32 -k 3 -u https://host.example.com/resources/index.html -p 3
目录
相关文章
|
SQL 安全 前端开发
maccms网站被挂马 根源问题在于SQL注入远程代码漏洞
目前苹果CMS官方在不断的升级补丁,官方最新的漏洞补丁对于目前爆发的新漏洞没有任何效果。更新补丁的用户网站还是会遭受到挂马的攻击,很多客户因此找到我们SINE安全寻求网站安全技术上的支持,针对该漏洞我们有着独特的安全解决方案以及防止挂马攻击的防护,包括一些未公开的maccms POC漏洞都有修复补丁
790 0
maccms网站被挂马 根源问题在于SQL注入远程代码漏洞
|
10月前
|
Java 测试技术 应用服务中间件
常见的网站压测工具介绍与使用
压力测试是每一个Web应用程序上线之前都需要做的一个测试,他可以帮助我们发现系统中的瓶颈问题,减少发布到生产环境后出问题的几率;预估系统的承载能力,使我们能根据其做出一些应对措施。
261 0
常见的网站压测工具介绍与使用
|
缓存 数据库 微服务
软件中的快与慢
随着互联网行业的快速发展,软件开发也变的为快不破。而对于我们的软件工程规律来看,软件开发从某个角度来说还是一份良心工作。
62 0
|
移动开发 Java Linux
Linux服务器端网络抓包和分析实战
本文实战了CentOS7下的网络抓包,以及windows下通过wireshark分析抓包数据
404 0
Linux服务器端网络抓包和分析实战
|
Java Maven
有了它们,你再说开发慢,就该揍了
有了它们,你再说开发慢,就该揍了
114 0
|
Java API Apache
有了它们,你再说开发慢,就该揍了(上)
有了它们,你再说开发慢,就该揍了
108 0
|
Java
如何排查Java内存泄露(内附各种排查工具介绍)
今天刚刚才加一个故障review会议, 故障非常典型, 在google也可以找到相似案例介绍。 在排查问题的过程中,使用了大量的工具, 发现有问题的地方还不只一个,总结一下. (本篇文章不会重点描述案例本身,重点会介绍个人对java内存泄露问题的排查思路和各种工具的使用)。
21905 0
|
安全 PHP 数据安全/隐私保护
thinkphp网站有漏洞怎么解决修复
2019年1月14日消息,thinkphp又被爆出致命漏洞,可以直接远程代码执行,getshell提权写入网站木马到网站根目录,甚至直接提权到服务器,该漏洞影响版本ThinkPHP 5.0、ThinkPHP 5.0.10、ThinkPHP5.0.12、ThinkPHP5.0.13、ThinkPHP5.0.23、thinkphp 5.0.22版本。
586 0
thinkphp网站有漏洞怎么解决修复
|
PHP Perl 测试技术
记一次织梦程序访问缓慢问题排查
近期接到几个关于织梦程序访问缓慢的case,有首页缓慢的也有后台生成首页缓慢的。本文记录一下关于这个case排查的过程。
1519 0