1. 程式人生 > >hash碰撞DOS漏洞

hash碰撞DOS漏洞

dem ont mas 解析 如果 限制 ahash href tps

這是一個很神奇的漏洞

hotel.meituan.com訂單頁面,POST提交的是一串json數據。當把這串數據換成json碰撞數據 後,服務器原本 100毫秒可以響應的數據包,變成需要30秒才能響應完。

由此,只需要一個頁面,不停地發送hash碰撞數據包,即可造成DOS,使服務器CPU達到100%而504報錯。

評分:

高危 RMB 600

原理:

json字符串解析過程中,經過hashtable函數,轉換成hash。而如果每一個json元素經過hashtable函數計算得到的值都一樣,就有一個哈希沖突的問題。有的hashtable函數使用鏈地址法,導致一堆hash沖突的json丟過去的時候,性能極度降低,龜速運行,造成DOS。

通過反向推倒不同語言的hashtable函數,可以計算hash碰撞數據。

檢測:

掃描器在檢測到POST數據為json形式的時候(GET有長度限制),將json數據替換成幾種hash碰撞數據,一一嘗試。如果響應時間與之前對比有大幅度提升,如幾百毫秒變為幾十秒,可能存在hash碰撞DOS漏洞。

修復:

過濾檢測,但其實最好的是重寫hashtable函數,發生沖突時的解決方法。

[ 參考 ]

一種高級的DoS攻擊-Hash碰撞攻擊 - BY - it2048我是大雄

Java Hash Collision之數據生產 - BY - it2048我是大雄

hash碰撞DOS漏洞