1.什么是缓慢的http拒绝服务攻击漏洞
缓慢的http拒绝服务攻击是一种专门针对于Web的应用层拒绝服务攻击,攻击者操纵网络上的肉鸡,对目标Web服务器进行海量http request攻击,直到服务器带宽被打满,造成了拒绝服务。
慢速HTTP拒绝服务攻击经过不断的演变和发展,主要有三种攻击类型,分别是Slow headers、Slow body、Slow read。
slowloris:完整的http请求是以\r\n\r\n结尾,攻击时仅发送\r\n,少发送一个\r\n,服务器认为请求还未发完,就会一直等待直至超时slow post:通过声明一个较大的content-length后,body缓慢发送,导致服务器一直等待slow read:向服务器发送一个正常合法的read请求,请求一个很大的文件,但把TCP滑动窗口设置得很小,服务器就会以滑动窗口的大小切割文件,然后发送,这时文件会长期存放在内存中,消耗资源
2. Flask应对措施
限制每次请求数据的大小
限制单个HTTP请求头的最大许可时间
限制单个ip请求数量
。。。。。。
#3. 使用slowhttptest测试漏洞
3.1 slowhttptest的安装
安装说明:https://github.com/shekyan/slowhttptest/wiki/InstallationAndUsage1
安装libssl-dev
$ yum install openssl openssl-devel安装C++编译器
$ yum install gcc-c++解压
$ tar -xzvf slowhttptest-x.x.tar.gz编译安装
1
2
3
4$ cd slowhttptest-x.x
$ ./configure --prefix=PREFIX
$ make
$ sudo make install
3.2 参数说明及使用测试
1 | -g 在测试完成后,以时间戳为名生成一个CVS和HTML文件的统计数据 |
3.2.1参考实例:
slowloris模式:
1 | slowhttptest -c 1000 -H -g -o my_header_stats -i 10 -r 200 -t GET -u https://xxxxxx.xxxxx.xx -x 24 -p 3 |
slow post模式:
1 | $ slowhttptest -c 3000 -B -g -o my_body_stats -i 110 -r 200 -s 8192 -t FAKEVERB -u http://xxx.xxx.xxx -x 10 -p 3 |
slow read模式:
1 | $ slowhttptest -c 8000 -X -r 200 -w 512 -y 1024 -n 5 -z 32 -k 3 -u https://xxx.xxx.xxx -p 3 |
4.使用说明
以下是分别使用四种方式对自己的服务进行测试的结果,先开始不太懂每个曲线图的意义。这里说明一下,上面的参数可以设置连接数量以及持续请求时间等参数。然后下面展现的是曲线图,主要看在测试程序运行时间内Connected的数量是否被释放,是否通过服务的设置不符合条件的请求被服务端关闭,Service是否正常运行(服务是否存在被漏洞攻击程序给冲宕机了)。
##4.1 RANGE HEADERS
##4.2 SLOW HEADERS(SlowLoris)
##4.3 SLOW BODY(SLOW POST)
4.4 SLOW READ