前言:无论是何种dos攻击,目的只有一个:用自己少量的资源,去干扰去消耗对方,耗死为止!
update:2019-02-03 15:50:24
先上工具
Slowhttptest是依赖HTTP协议的慢速攻击DoS攻击工具,设计的基本原理是服务器在请求完全接收后才会进行处理,如果客户端的发送速度缓慢或者发送不完整,服务端为其保留连接资源池占用,大量此类请求并发将导致DoS。
安装步骤:
- kali 2019.1需要先安装依赖包libssl-dev:
sudo apt-get install libssl-dev
- 然后从https://github.com/shekyan/slowhttptest下载zip包,或者git clone(这个不太熟练,有空单独测试下)。
- 解压后,进入到文件目录,执行
./configure
,然后make && make install
接下来说一下三种攻击模式:
slowloris:
逼死强迫症有两种方法:一种是把话说一半,
操作方式:
slowhttptest -c 1000 -H -g -o my_header_stats -i 10 -r 200 -t GET -u https://host.example.com/index.html -x 24 -p 3
完整的http请求是以\r\n\r\n结尾,攻击时仅发送\r\n,少发送一个\r\n,服务器认为请求还未发完,就会一直等待直至超时。等待过程中占用连接数达到服务器连接数上限,服务器便无法处理其他请求。
slow http post:
有种你站着别动!我去叫人,人齐了干死你……
操作方式:
slowhttptest -c 3000 -B -g -o my_body_stats -i 110 -r 200 -s 8192 -t FAKEVERB -u http://host.example.com/loginform.html -x 10 -p 3
原理和slowloris有点类似,这次是通过声明一个较大的content-length后,body缓慢发送,导致服务器一直等待
slow read attack:
“您好,请问办什么业务?”
“取钱,一万现金!硬币……”
操作方式:
slowhttptest -c 8000 -X -r 200 -w 512 -y 1024 -n 5 -z 32 -k 3 -u https://host.example.com/resources/index.html -p 3
向服务器发送一个正常合法的read请求,请求一个很大的文件,但认为的把TCP滑动窗口设置得很小,服务器就会以滑动窗口的大小切割文件,然后发送。文件长期滞留在内存中,消耗资源。这里有两点要注意:
- tcp窗口设置要比服务器的socket缓存小,这样发送才慢。
- 请求的文件要比服务器的socket缓存大,使得服务器无法一下子将文件放到缓存,然后去处理其他事情,而是必须不停的将文件切割成窗口大小,再放入缓存。同时攻击端一直说自己收不到。
小试牛刀
如何判断服务器是否存在上述漏洞呢?其实命令执行后不难看出来:
红框框就是判断依据了注意事项
- 未经授权的系统请勿尝试操作此类带有攻击性的工具。
- 如果已经经过授权,测试时应避开业务高峰期,将可能造成的损失降低到最小。
- 建议自己搭建Web服务器,在本地练习。(eg. phpstudy)
后续问题
如果服务器确实存在上述问题,又该如何防护呢?
参(CTRL_C)考(CTRL_V):
https://www.cnblogs.com/shenlinken/p/7400336.html
https://blog.csdn.net/xysoul/article/details/45169807
网友评论