msgbartop
PHP语言, PHP扩展, Zend引擎相关的研究,技术,新闻分享 – 左手代码 右手诗
msgbarbottom

30 Dec 11 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.9, 已经包含了此patch(因为5.3.9目前是RC状态, 所以如果不愿意升级, 也可以参照这个patch自己为5.3写一个):

https://github.com/laruence/laruence.github.com/tree/master/php-5.2-max-input-vars

补充一下(2012年1月8日): 如果你使用的是Windows下的PHP, 或者其他原因导致你不方便采用打patch的方法, 也可以采用修改PHP的配置max_input_time为一个较小的值来缓解此类攻击带来的影响.

另外, 其他语言java, ruby等, 请各位也预先想好对策, 限制post_size是治标不治本的方法, 不过可以用来做临时解决方案.

thanks


分享到:



Related Posts:

Tags: , , ,

30 Responses to “PHP5.2.*防止Hash冲突拒绝服务攻击的Patch”

Pages: [3] 2 1 » Show All

  1. 运维军团——运维技术与开源架构交流 » Hash冲突实现各种拒绝服务攻击 |

    [...] http://www.laruence.com/2011/12/30/2440.html [...]

  2. sk |

    已经使用。非常不错
    5.2.17使用还比较广泛

  3. George |

    Hello Laruence,

    您好, 首先謝謝您的回覆, 有少少問題欲請教 –

    在您的 5.2.17 patch 裡, 於 php_error_docref , 您使用了 E_ERROR (而不是 PHP 5.3.9 原本的 E_WARNING)

    我們驗過, 似乎 E_ERROR 是會中止 c 程式執行,所以沒有運行有問題的 Z_ARRVAL_PP;

    而 E_WARNING (或 E_NOTICE) 是會讓 PHP 的 php_variables.c 程式繼續執行, 所以間接地牽涉的 Z_ARRVAL_PP

    請多多指教。

    謝謝
    George

  4. laruence |

    @George
    hello, there is no such issue in this patch, so plz don’t worry. :)

  5. George |

    Hello Laruence,

    There were a related vulnerability CVE-2012-0830 for this patch.

    May you mind to back-ported the change for PHP 5.2.17 too?

    Thank you very much for your kind attention

    Regards
    George

  6. 雪候鸟 |

    @none 我为5.2提供的patch, 不受此影响. thanks :)

  7. none |

    please fix this bug https://bugs.php.net/bug.php?id=60708 in you https://github.com/laruence/laruence.github.com/tree/master/php-5.2-max-input-vars patch

  8. easyboy |

    centos下用yum安装的PHP能打补丁吗?都不知道怎么进入PHP src目录,求教!~

  9. zlsky |

    我打了5.2.17的补丁之后,php的session就无法保存了.
    大致看了一下应该是cookie的session id 无法映射到服务器里面的session值….
    每当页面跳转的时候session值就全部丢失了?会是什么原因造成的.

  10. 安装防止Hash冲突拒绝服务攻击的PHP Patch | Mr.Bird |

    [...] 在之后laruence放出了PHP对应的补丁,以解决这一问题. [...]

Pages: [3] 2 1 » Show All

Leave a Reply

*