一、slowhttp攻击

slowhttp攻击的意思是客户端使用非常慢的速度发送数据到服务端,例如每秒发送1个字节头部或body,导致服务端连接长时间占用连接,当这种连接多了之后,服务端资源就会耗尽。

以下就是一个慢攻击测试案例,当1000个客户端连接缓慢发送HTTP头部到服务端后,服务器已经变成了不可用状态:

前端提示资源无法访问:

如何测试服务是否存在慢攻击漏洞

下载测试工具slowhttptest:https://github.com/shekyan/slowhttptest,根据文档编译安装。

然后执行:

slowhttptest -c 1000 -H -i 10 -r 200 -t GET -u https://服务器地址/页面 -x 24 -p 3

控制台会每5秒打印一次连接状态,可以持续监控,如果隔了几十秒后,连接还一直没有断开,说明服务端是存在漏洞的。

二、apache环境下修复

我们的web服务器是使用的apache,根据网上提供的方法,安装mod_reqtimeout模块,再添加以下配置:

<IfModule reqtimeout_module>
    RequestReadTimeout header=5-40,MinRate=500 body=20,MinRate=500
</IfModule>

重启apache,问题就解决了。再次使用测试工具测试,连接在建立后5秒左右会被断开。

三、参考

SlowHTTPTest-慢速DoS攻击

最后修改:2020 年 03 月 24 日
如果觉得我的文章对你有用,请随意赞赏