PHP5.2.X防止Hash冲突拒绝服务攻击的Patch方法

上周的时候Dmitry突然在5.4发布在即的时候, 引入了一个新的配置项:

Added max_input_vars directive to prevent attacks based on hash collision这个预防的攻击, 就是”通过调用Hash冲突实现各种语言的拒绝服务攻击漏洞”(multiple implementations denial-of-service via hash algorithm collision).

攻击的原理很简单, 目前很多语言, 使用hash来存储k-v数据, 包括常用的来自用户的POST数据, 攻击者可以通过构造请求头, 并伴随POST大量的特殊的”k”值(根据每个语言的Hash算法不同而定制), 使得语言底层保存POST数据的Hash表因为”冲突”(碰撞)而退化成链表.

这样一来, 如果数据量足够大, 那么就可以使得语言在计算, 查找, 插入的时候, 造成大量的CPU占用, 从而实现拒绝服务攻击.

PHP5.4是通过增加一个限制来尽量避免被此类攻击影响:

  - max_input_vars - specifies how many GET/POST/COOKIE input variables may be    accepted. default value 1000

 

大家如果有用5.2的, 如果被此类攻击威胁, 可以打上下面的patch, PHP5.3的, 可以考虑升级到5.3.9, 已经包含了此patch(因为5.3.9目前是RC状态, 所以如果不愿意升级, 也可以参照这个patch自己为5.3写一个):

 

防止办法

1. Cd into the PHP src run: patch -p1 < php-5.2.*-max-input-vars.patch
2. Since the latest PHP 5.3.9-RC4 has fixed this issue, so for 5.3 you can upgrade to 5.3.9RC4
   Of course if you don't want to upgrade to a RC version, you can simply tweak this patch into a 5.3 suitable patch.

大家可到https://github.com/laruence/laruence.github.com/tree/master/php-5.2-max-input-vars下载包

时间: 2024-11-10 01:06:57

PHP5.2.X防止Hash冲突拒绝服务攻击的Patch方法的相关文章

PHP5.2.*防止Hash冲突拒绝服务攻击的Patch

由我前面的俩篇文章介绍(通过构造Hash冲突实现各种语言的拒绝服务攻击, PHP数组的Hash冲突实例 ), 这个攻击方法危害很高, 攻击成本也很小. 一个台式机可以轻松搞垮数十台, 上百台服务器. 而和Pierre沟通后, 官方开发组不会为此发布PHP 5.2.18, 但是目前还是由不少公司还在使用5.2, 所以我特将dmitry为5.4写的patch, 分别apply到5.2上. 大家如果有用5.2的, 如果被此类攻击威胁, 可以打上下面的patch, PHP5.3的, 可以考虑升级到5.3

PHP利用hash冲突漏洞进行DDoS攻击的方法分析

 这篇文章主要介绍了PHP利用hash冲突漏洞进行DDoS攻击的方法,实例分析了php利用hash进行DDoS攻击的原理与实现技巧,需要的朋友可以参考下     本文实例分析了PHP利用hash冲突漏洞进行DDoS攻击的方法.分享给大家供大家参考.具体分析如下: 首先声明:本文内容只用于研究学习使用,请勿用于非法行为! 前面提到过最近爆出的hash表碰撞漏洞,包括java.python.php等在内的很多常用语言均未幸免,今晚咱就来实际看看它的威力. 攻击原理: 通过向目标服务器post一组精心

PHP利用hash冲突漏洞进行DDoS攻击的方法分析_php技巧

本文实例分析了PHP利用hash冲突漏洞进行DDoS攻击的方法.分享给大家供大家参考.具体分析如下: 首先声明:本文内容只用于研究学习使用,请勿用于非法行为! 前面提到过最近爆出的hash表碰撞漏洞,包括java.python.php等在内的很多常用语言均未幸免,今晚咱就来实际看看它的威力. 攻击原理: 通过向目标服务器post一组精心拼凑的数组参数,到达服务端后语言底层处理接收到的数组参数时,由于该漏洞的存在造成CPU的大量消耗,最终导致服务器资源耗尽. 不用什么花哨的手法,就用PHP简单实现

BitTorrent可被用来放大拒绝服务攻击

本文讲的是 BitTorrent可被用来放大拒绝服务攻击,发动拒绝服务攻击通常需要许多台僵尸肉机,但最新发表的一篇科技论文显示,攻击者只需呆在卧室里,使用一台计算机来完成这个"工作".这个取巧的方法就是利用BitTorrent本身提供的正常服务. 上周伦敦城市大学和云安全公司的两名研究人员发表了这篇利用P2P文件共享发动反射分布式拒绝服务攻击的论文. 论文显示,与torrent相关的协议存在漏洞,可被利用提升拒绝服务攻击.这些协议包括Micro Transport,Distribute

阻断拒绝服务攻击

从去年七.八月开始,拒绝服务攻击在网上风行一时,一年后的现在又有抬头之势.那么我们除了用防堵软件外,是否还有其它办法呢? 服务过载 当大量服务请求发向同一台计算机的服务守护进程时,就会产生服务过载.这些请求通过各种方式发出,而且许多都是故意的.在分时机制中,计算机需要处理这些潮水般涌来的请求,十分忙碌,以至无法处理常规任务,就会丢弃许多新请求.如果攻击的对象是一个基于TCP协议的服务,这些请求还会被重发,进一步加重网络的负担. 通常,管理员可以使用网络监视工具来发现这种攻击,通过主机列表和网络地

DDoS拒绝服务攻击和安全防范技术

一. DDoS拒绝服务攻击简介 "拒绝服务(Denial-Of-Service)攻击就是消耗目标主机或者网络的资源,从而干扰或者瘫痪其为合法用户提供的服务."国际权威机构"Security FAQ"给出的定义. DDOS则是利用多台计算机机,采用了分布式对单个或者多个目标同时发起DoS攻击.其特点是:目标是"瘫痪敌人",而不是传统的破坏和窃密;利用国际互联网遍布全球的计算机发起攻击,难于追踪. 目前DDoS攻击方式已经发展成为一个非常严峻的公共安

抗拒绝服务攻击(DDoS):是疏还是堵?

抗DDoS(分布式拒绝服务攻击)攻击系统是针对业务系统的稳定.持续运行以及网络带宽的高可用率提供防护能力进行维护.然而,自1999年Yahoo.eBay等电子商务网站遭到拒绝服务攻击之后,DDoS就成为Internet上一种新兴的安全威胁,其危害巨大且防护极为困难. 尤其是随着黑客技术的不断发展,DDoS攻击更是出现了一些新的动向和趋势: 高负载-DDoS攻击通过和蠕虫.Botnet相结合,具有了一定的自动传播.集中受控.分布式攻击的特征,由于感染主机数量众多,所以DDoS攻击可以制造出高达1G

PHP数组的Hash冲突实例

PHP数组的Hash冲突实例,你知道不知道, 插入65536个经过构造的键值的元素到PHP数组, 会需要耗时30秒以上? 而一般的这个过程仅仅需要0.1秒..   请看如下的例子: $size = pow(2, 16); $startTime = microtime(true); $array = array(); for ($key = 0, $maxKey = ($size - 1) * $size; $key <= $maxKey; $key += $size) { $array[$key

安全简报: 正则表达式拒绝服务攻击和防御

在 2009 年 11 月刊中,我写了一篇标题为"XML 拒绝服务攻击和防御" (msdn.microsoft.com/magazine/ee335713) 的文章,在这篇文章中,我介绍了一些对 XML 分 析程序特别有效的拒绝服务 (DoS) 攻击技巧.我从读者那里收到许多有关此文章的电子邮件, 他们都想了解有关这方面的更多知识,这让我真正意识到人们已经了解 DoS 攻击的严重性. 我相信,在未来的四到五年中,随着权限升级,执行攻击会变得更加困难,这是由于不断采 用诸如数据执行保护