hash碰撞DOS漏洞

Posted huim

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了hash碰撞DOS漏洞相关的知识,希望对你有一定的参考价值。

这是一个很神奇的漏洞

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漏洞的主要内容,如果未能解决你的问题,请参考以下文章

一种高级的DoS攻击-Hash碰撞攻击

Tomcat WebSocket Dos漏洞复现(CVE-2020-13935 )复现

PHP DOS漏洞的新利用:CVE-2015-4024 Reviewed

jQuery跨站脚本漏洞XSS with $(location.hash)漏洞

高危:Apache Tomcat HTTP/2 DoS 漏洞,影响多个版本

安全日记Apache Struts2 REST插件又爆DoS漏洞