apt-get install slowhttptest
slowhttptest -h
slowhttptest -c 1000 -H -i 10 -r 200 -t GET -u https://www.xxx.com/index.html -x 24 -p 3
slowhttptest -c 1000 -B -g -o my_body_stats -i 110 -r 200 -s 8192 -t FAKEVERB -u http://xxx.com -x 10 -p 3
--------------------------------------------------------------
—a—开始开始值范围说明符用于范围头测试
-b 将字节限制的范围说明符用于范围头测试
- c的连接数限制为65539
- d proxy host:port用于指导所有流量通过web代理
- e proxy host:port端口用于指导只有探针交通通过web代理
- h,B,R或x指定减缓在头部分或在消息体,- R 允许范围检验,使慢读测试- x
- g生成统计数据在CSV和HTML格式,模式是缓慢的xxx。csv / html,其中xxx是时间和日期
- i seconds秒间隔跟踪数据在几秒钟内,每个连接
- k管道因子次数重复请求在同一连接慢读测试如果服务器支持HTTP管道内衬。
- l在几秒钟内,秒测试时间
- n秒间隔从接收缓冲区读取操作
- o文件定义输出文件路径和/或名称,如果指定有效- g
- p秒超时等待HTTP响应在探头连接后,服务器被认为是不可访问的
- r seconds连接速度
- s字节值的内容长度标题详细说明,如果指定- b
- t verb自定义
- u URL目标URL,相同的格式键入浏览器,e。g https://host[:port]/
- v level冗长等级0 – 4的日志
- w字节范围广告的窗口大小会选择从
- x字节最大长度的跟踪数据结束
- y字节范围广告的窗口大小会选择从
- z字节从接收缓冲区读取字节与单一的read()操作
案例说明
slowhttptest -c 1000 -B -g -o my_body_stats -i 110 -r 200 -s 8192 -t FAKEVERB -u http://mysite -x 10 -p 3
使用的例子
slowhttptest -c 1000 -B -g -o my_body_stats -i 110 -r 200 -s 8192 -t FAKEVERB -u url -x 10 -p 3
slowhttptest -c 1000 -X -g -o -slow_read_stats -r 200 -w 512 -y 1024 -n 5 -z 32 -k 3 -u url -p 3
慢消息主体模式
slowhttptest -c 1000 -B -g -o my_body_stats -i 110 -r 200 -s 8192 -t FAKEVERB -u https://xxxxx -x 10 -p 3
在slowloris模式的示例
slowhttptest -c 1000 -H -g -o my_header_stats -i 10 -r 200 -t GET -u https://xxxxx -x 24 -p 3
使用的例子在慢读模式,通过代理探索. x.x.x。x:8080有网站可用性比你从IP不同
slowhttptest -c 1000 -X -r 1000 -w 10 -y 20 -n 5 -z 32 -u http://xxxxx -p 5 -l 350 -e x.x.x.x:8080
-------------------------------------------------------------------------------------------------
整改建议
1.中断使用URL不支持HTTP方法访问的会话
2.限制HTTP头及包长至一个合理数值
3.设置一个绝对的会话超时时间
4.服务器支持backlog的情况下,需设置一个合理的大小
5.设置一个最小的入站数据传输速率
问题名称:
Slow HTTP Denial of Service Attack
问题URL
http://10.238.*.*:58***
风险等级:高
问题类型:服务器配置类
漏洞描述:利用的HTTP POST:POST的时候,指定一个非常大的
content-length,然后以很低的速度发包,比如10-100s发一个字节,hold住这个连接不断开。这样当客户端连接多了后,占用住了webserver的所有可用连接,从而导致DOS。
解决方案:对web服务器的http头部传输的最大许可时间进行限制,修改成最大许可时间为20秒。
三、解决方法
方法一:对web服务器的http头部传输的最大许可时间进行限制,修改成最大许可时间为20 秒
以tomcat为例,打开server.xml找到
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 完成