导航

工作上遇到的奇怪要求-慢速攻击

#1

恶狗吐槽

最近刚入职一个新的安服工作,闲了几天上面给安排下来第一个正经活,对一个省内站点进行一次慢速攻击测试 之前没接触过 慢速攻击,理解错了意思,就当是低频率发起请求的漏洞挖掘搞了

慢速攻击

简介

一种Dos攻击方式 诱因:TCP超时时间设置的不合理 利用方式:攻击者可以再发送HTTP请求时采用缓慢发送的方式,导致占用一个HTTP链接会话 危害:导致服务器的连接资源和内存资源被大量消耗,进而构成Dos攻击

常见的慢速攻击手段

1.slow headers

原理:web服务器再处理HTTP请求前要接收完所有HTTP头部,如果服务器没有收到两个连续的\r\n时,会认为客户端没有发送完头部(HTTP协议规定,HTTP头和HTTP Body间要有两个\r\n)而持续等待客户端发送数据 攻击手法:发起一个HTTP请求,并且一直不停的发送HTTP头部,消耗服务器的内存资源

2.slow Body

攻击手法:构建异常的数据包,将HTTP头中的Content-Length字段设置未一个很大的值,使web服务器认为客户端要发送很大的数据包,但是攻击者在发送数据的过程中,每次只发送很小的报文,导致服务端一直在等待客户端发送数据

3.slow read

攻击者发送HTTP请求,但当服务器将响应包发回攻击者时,攻击者以慢速读取响应数据,直到快超时才读取很小的数据

利用工具

slowhttptest 项目地址:https://github.com/shekyan/slowhttptest

-c 400: 总连接数
-H: slowloris 模式,表示test type为Slow headers
-B: 表示Slow body
-X: 表示Slow read
-i 10: 发送数据间的间隔10s
-r 200: 200个连接每秒
-t GET: 使用GET请求方式
-u url: 目标url格式为具体的接口url
-x 24: 发送的最大数据成都24
-p 3: 等待3秒来确定Dos攻击是否成功
-l 200: 测试持续时间
#   slow headers
slowhttptest -c 400 -H -i 10 -r 200 -t GET -u 目标url -x 24 -p 3 -l 200

#   slow body
slowhttptest -c 400 -B -i 10 -r 200 -s 20000 -t GET -u 目标url -x 24 -p 3 -l 200

#   slow read
slowhttptest -c 400 -X -i 10 -r 200 -s 20000 -t GET -u 目标url -x 24 -p 3 -l 200

测试结果为“Exit status: No open connections left",代表无此漏洞。

nginx防护

1.keepalive_timeout

该参数指定了TCP链接的最多保持时间, 在客户端和服务器建立TCP连接后,如果开启keepalive机制,那么客户端和服务器就可以一直发送HTTP数据包,而不必频繁的建立或拆除TCP连接,如果客户端长时间不发送HTTP数据包,那么服务器就会发送FIN TCP数据包,关闭TCP连接。

2.client_body_timeout

该参数是客户端与服务器建立连接后发送request body的超时时间,如果客户端在该参数设置的时间内没有发送任何内容,Nginx服务器将返回408

3.client_header_timeout

该参数是客户端向服务器发送一个完整的request header的超时时间,如果客户端在该时间内没有发送完一个完整的request header,Nginx将返回408

4.send_timeout

该参数为服务端向客户端传输数据的超时时间,如果设置了该参数,那么服务器就必须在规定的时间内向客户端传输完所有数据

5.client_body_buffer_size

该参数可以设置请求主体缓冲区大小,如果主体超过该参数规定的大小,则完整主体或主体的一部分会被写入临时文件 ( 该设置仅在Nginx启动内存缓冲区时生效 )

6.client_max_body_size

该参数可以设置Nginx可以处理的最大的请求主体大小,如果客户端的请求超过该参数规定的大小,那么Nginx将会回复413

7.client_body_in_single_buffer

该参数如果设置为on,那么就会使得Nginx将完整的请求主体存储在单个缓冲区中,并且会优化读取request body中变量时涉及到的I/O操作。该值默认情况下为off。

2023-05-27
#2
奇葩,还有那个长密码拒绝服务攻击,同样奇葩
山海关安全团队www.shg-sec.com
2023-05-28
#3
记得刚实习时候用awvs扫出来过,复现过一下,基本没啥用
学习学习学习。
记录菜鸡的成长.
2023-05-29
#4
安服仔挖洞凑数必备
穷且益坚,不坠青云之志。
2023-05-29
#5
还有各种header信息泄漏,各种ua信息泄漏,还碰见过写nginx版本泄露的,实则是返回头server:nginx1.2.3
穷且益坚,不坠青云之志。
2023-05-29
#6
最烦这些乱七八糟的洞了,解释不好解释,复现还贼麻烦
凡人看山不是山
2023-05-29
#7
就是保持连接不中断,一直消耗服务器性能
2023-05-30
#8
就是消耗连接数,使得正常用户无法正常访问网站
2023-05-30
#9
凑数漏洞 哈哈哈
2023-06-01
#10
水过这个漏洞,通过把中间件连接数打满,来实现低带宽拒绝服务。。。