HTTP POST慢速DOS攻擊初探

2021-06-05 09:44:02 字數 1691 閱讀 5404

http post慢速dos攻擊第一次在技術社群被正式披露是今年的owasp大會上,由wong onn chee 和 tom brennan共同演示了使用這一技術攻擊的威力。他們的slides在這裡:

這個攻擊的基本原理如下:

針對任意http server,建立乙個連線,指定乙個比較大的content-length,然後以很低的速度發包,比如10-100s發乙個位元組,hold住這個連線不斷開。如果客戶端持續建立這樣的連線,那麼伺服器上可用的連線將很快被佔滿,從而導致dos.

這一攻擊引起我注意的原因有這幾點:

1. 它可以針對任意web服務。http協議在接收到request之前是無法對請求內容作校驗的,所以即使你的web應用沒有可用form表單,這個攻擊一樣有效。

2. 廉價。在客戶端以單執行緒方式建立較大數量的無用連線,並保持持續發包的代價非常低廉。實際試驗中一台普通pc可以建立的socket連線在3000個以上。這對一台普通的web server,將是致命的打擊。更不用說結合肉雞群做分布式dos了。

為演示這個攻擊,我做了乙個簡單的poc,c#**如下。

}}這段**向目標伺服器的示例web server發起攻擊,每秒鐘向伺服器post乙個位元組以保證連線不會過期。

這個攻擊對apache的效果十分明顯,apache的maxclients幾乎在瞬間被hold住,瀏覽器在攻擊進行期間無法訪問測試頁面。

但是針對iis的攻擊被證明沒有效果,同時我還測試了公司使用最多的jetty,有了更多有意思的發現。

在針對jetty做測試時,我發現針對不同的jetty connector配置,攻擊的效果有天壤之別。

我們知道jetty在配置connector時,可以有nio和bio兩種模式供選擇。當使用bio模式時,jetty的max thread被瞬間耗盡,服務停止。但是在使用nio模式時,即使客戶端的惡意socket連線數已經達到3000個,但是服務依然沒有受到任何影響。這個應該很好理解,由於這兩種模式下的connector直接影響到服務端處理socket的模型。iis的情況我不是很清楚,但是猜測ms在實現時採用了nio socket模型。

詳細的配置情況,請參見jetty的官方文件。

其它的web server,我沒有做進一步測試。如有興趣請自行驗證。

目前針對apache伺服器,官方尚沒有解決方案出台。建議:

1. 檢查日誌,查詢類似的錯誤報警:

[error] server reached maxclients setting, consider raising the maxclients setting

看看有沒有被這種攻擊盯上。

2. 調整防火牆設定。有條件的,在ips上做一下規則設定。

注意這些都還只是暫時措施,因為這種攻擊的變化可能很多,事實上使用http get也可以達到一樣的效果。要知道get也是可以傳輸資料的。

針對jetty伺服器,強烈建議使用nio非阻塞模式,對伺服器可以起到很好的保護作用。

SlowHTTPTest 慢速DDoS攻擊

1.工具 slowhttptest 2.使用方法 命令 slowhttptest c 1000 h i 10 r 200 t get u x 24 p 33.引數介紹 c connections目標連線數 1000 h slow headers 攻擊,緩慢傳送 r n,讓伺服器一直等待 i seco...

網路攻擊 慢速連線攻擊和處理方式

慢速攻擊原理 http慢速攻擊是利用http合法機制,在建立連線後,盡量長時間保持連線,不釋放,達到對http服務攻擊,攻擊者傳送post請求,自行構造報文向伺服器提交資料,將報文長度設定乙個很大的值,且在隨後每次傳送中,每次只傳送乙個很小的報文,這樣導致伺服器一直等待資料,連線始終一直被占用。如果...

ARP攻擊和DOS攻擊

arp address resolution protocol,位址解析協議 是乙個位於tcp ip協議棧中的網路層,負責將某個ip位址解析成對應的mac位址 1基本功能 arp協議的基本功能就是通過目標裝置的ip位址,查詢目標裝置的mac位址,以保證通訊的進行。arp攻擊的侷限性 arp攻擊僅能在...