54 CHEN

年终攻击hashDos-哈希表多碰撞实现拒绝服务-破解办法

起因: Wed, 28 Dec 2011 22:28:16 GMT apache tomcat公布了一个安全漏洞。
http://mail-archives.apache.org/mod_mbox/www-announce/201112.mbox/%3C4EFB9800.5010106@apache.org%3E

漏洞原理: 依靠相应语言的hashtable/hashmap实现过程(request多为此结构),当不同的key存入时如果hash值相等则以链表方式连接在前面。此漏洞利用碰撞相同的hash值得到一个长链表,重新get时,map的计算过程会将时间复杂度巨增,原来一个简单的过程将变成一个很费cpu的过程。

影响到的: 最快时间tomcat公布了解决办法。
php进行了升级。
ms也发了公告http://technet.microsoft.com/en-us/security/bulletin/ms11-100。

解决办法: tomcat 临时办法: 默认大小2097152,当maxPostSize=0时,不限制;maxPostSize=20971520时,为20M,改为一个小于10k的值,所有版本可用,会影响用户。 持久办法: 用新的版本,maxParameterCount默认值1000。 nginx 临时办法: 默认的最大请求body大小为8m,修改设置client_max_body_size=10k;此招为各种情况下万金油,会影响用户。 持久办法: 暂无,应该很快会有max_request_count的参数。 php 持久办法: php升级到5.3.9,5.2需要打patch。详细见:http://www.laruence.com/2011/12/30/2440.html

后记 54chen人肉构造打到php,php立马100%,转到java(resin+spring+rose),轻松化解,没有反应。

hashDos,important

原创文章如转载,请注明:转载自五四陈科学院[http://www.54chen.com]

Posted by 54chen php

水煮鱼杯2011年度不得不总结的十件事 »