管理员
|
阅读:1315回复:0
通过构造Hash冲突实现各种语言的拒绝服务攻击
楼主#
更多
发布于:2011-12-30 17:46
 | |  |  | 上周的时候Dmitry突然在5.4发布在即的时候, 引入了一个新的配置项: 这个预防的攻击, 就是”通过调用Hash冲突实现各种语言的拒绝服务攻击漏洞”(multiple implementations denial-of-service via hash algorithm collision).攻击的原理很简单, 目前很多语言, 使用hash来存储k-v数据, 包括常用的来自用户的POST数据, 攻击者可以通过构造请求头, 并伴随POST大量的特殊的”k”值(根据每个语言的Hash算法不同而定制), 使得语言底层保存POST数据的Hash表因为”冲突”(碰撞)而退化成链表. 图片:34_3710_830eceb33b1eada.png 这样一来, 如果数据量足够大, 那么就可以使得语言在计算, 查找, 插入的时候, 造成大量的cpu占用, 从而实现拒绝服务攻击.PHP5.4是通过增加一个限制来尽量避免被此类攻击影响:[pre][/pre] - [pre] - max_input_vars - specifies how many GET/POST/COOKIE input variables may be[/pre]
- accepted. default value 1000
目前已知的受影响的语言以及版本有::java, 所有版本JRuby <= 1.6.5PHP <= 5.3.8, <= 5.4.0RC3python, 所有版本Rubinius, 所有版本Ruby <= 1.8.7-p356Apache Geronimo, 所有版本Apache Tomcat <= 5.5.34, <= 6.0.34, <= 7.0.22Oracle Glassfish <= 3.1.1Jetty, 所有版本Plone, 所有版本Rack, 所有版本V8 JavaScript Engine, 所有版本不受此影响的语言或者修复版本的语言有::PHP >= 5.3.9, >= 5.4.0RC4JRuby >= 1.6.5.1Ruby >= 1.8.7-p357, 1.9.xApache Tomcat >= 5.5.35, >= 6.0.35, >= 7.0.23Oracle Glassfish, N/A (Oracle reports that the issue is fixed in the main codeline and scheduled for a future CPU)CVE: CVE-2011-4885 (PHP), CVE-2011-4461 (Jetty), CVE-2011-4838 (JRuby), CVE-2011-4462 (Plone), CVE-2011-4815 (Ruby)
| |  | |  |
|