hash碰撞DOS漏洞
阿新 • • 發佈:2018-01-18
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漏洞