首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 相關知識

PHP 實戰 CC 攻擊緊急應變與 IP 封鎖自動化腳本

     編輯:PHP 相關知識

CC 攻擊特徵與應變原則

CC 攻擊(Challenge Collapsar)透過大量代理 IP 模擬正常請求耗盡伺服器資源。應變核心:**快速識別攻擊源 → 精準封鎖 → 恢復服務**。

第一階段:緊急穩定環境

  1. 登入 VPS 控制台,準備隨時重啟
  2. 先關閉 Web Server,高負載下 SSH 可能無法連線
  3. 關閉 Web Server 開機自啟,防止重啟後立即被拖垮
  4. 若完全失聯:聯繫主機商在母機層面封鎖 IP/80 埠,用虛擬控制台進入系統處理

第二階段:攻擊源 IP 收集

部署 IP 記錄腳本

<?php
$real_ip = getenv('HTTP_X_FORWARDED_FOR');
if (isset($real_ip)) {
    shell_exec("echo $real_ip >> real_ip.txt");
    shell_exec("echo {$_SERVER['REMOTE_ADDR']} >> proxy.txt");
} else {
    shell_exec("echo {$_SERVER['REMOTE_ADDR']} >> ips.txt");
}
echo '伺服器受攻擊中,正在收集攻擊源,請 5 分鐘後再訪問...';
?>

Nginx 全站導流規則

rewrite (.*) /ip.php;

Lighttpd 規則

url.rewrite = ( "^/(.+)/?$" => "/ip.php" )

啟動收集(3-5 分鐘)再關閉 Web Server

  • real_ip.txt:真實客戶端 IP(穿透代理),出現頻率最高者為攻擊平台
  • proxy.txt:代理伺服器 IP,需全數封鎖
  • ips.txt:直連 IP,依訪問頻率判斷

第三階段:多站點環境識別受攻擊域名

若未啟用存取日誌,在 ip.php 加入:

shell_exec("echo {$_SERVER['HTTP_HOST']} >> domain.txt");

domain.txt 出現頻率最高的域名即為受攻擊目標。

第四階段:自動化封鎖腳本

<?php
$threshold = 10;  // 閾值:超過 10 次視為攻擊
$ips = array_count_values(file('ips.txt'));
$ban_num = 0;

foreach ($ips as $ip => $num) {
    if ($num > $threshold) {
        $ip = trim($ip);
        $cmd = "iptables -I INPUT -p tcp --dport 80 -s $ip -j DROP";
        shell_exec($cmd);
        echo "$ip banned!\n";
        $ban_num++;
    }
}

$proxy_arr = array_unique(file('proxy.txt'));
foreach ($proxy_arr as $proxy) {
    $proxy = trim($proxy);
    $cmd = "iptables -I INPUT -p tcp --dport 80 -s $proxy -j DROP";
    shell_exec($cmd);
    echo "$proxy banned!\n";
    $ban_num++;
}

echo "total: $ban_num ips\n";
?>

執行方式

php ban.php

進階優化建議

痛點優化方案
shell_exec 權限不足PHP-FPM 以 root 執行(不建議)或 sudoers 免密授權 iptables
iptables 規則重啟失效使用 iptables-save/恢復、或安裝 iptables-persistent
單機封鎖上限接入雲端 WAF(Cloudflare、阿里雲盾)、或部署 IPset 大量管理
誤封正常用戶白名單機制、人工複核、封鎖前二次驗證(驗證碼/行為分析)
日誌分析延遲即時串流分析(Filebeat + Logstash + Elasticsearch + Kibana)

長期防禦架構

  1. 應用層限流: Nginx limit_req_zone、PHP 中間件 Token Bucket
  2. 邊緣防護: CDN/WAF 隱藏源站 IP、JS 挑戰、人機驗證
  3. 架構彈性: 無狀態水平擴展、自動擴縮容、熔斷降級
  4. 威脅情報: 整合已知惡意 IP 庫(AbuseIPDB、Spamhaus、本地蜜罐)
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved