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

批量掛馬與清馬代碼分析(僅供安全研究參考)

     編輯:PHP 綜合知識

⚠️ 安全警示

本文原始內容包含惡意代碼(批量植入/清理 iframe 掛馬腳本),屬於非法攻擊工具。為防止濫用,此處不提供可執行代碼,僅從防禦角度分析其特徵與對策。

惡意腳本行為分析

  • 掛馬功能: 遞迴掃描目錄,依正則匹配檔名(如 index.php、default.html),在檔案末尾追加惡意 iframe 代碼,指向攻擊者控制的惡意網址。
  • 清馬功能: 同樣遞迴掃描,讀取檔案內容,移除特定惡意字串,試圖掩蓋蹤跡或清理競爭者掛馬。
  • 入口點: 透過 $_GET['action'] 區分掛馬/清馬模式,$_POST 接收目錄、關鍵字、惡意代碼參數,無任何驗證授權機制。
  • 繞過限制: 使用 set_time_limit(0) 移除執行時間限制,@ 抑制錯誤輸出,ereg 正則匹配(已棄用)。

防禦與檢測建議

1. 伺服器層面

  • 禁用危險函數:disable_functions = exec,passthru,shell_exec,system,proc_open,popen,curl_exec,curl_multi_exec,parse_ini_file,show_source
  • 限制目錄權限:網站根目錄僅授予必要讀寫權限,嚴禁對外開放寫入權限。
  • 部署 WAF(Web 應用防火牆),規則檢測 iframe src=、document.write、eval( 等特徵。

2. 代碼層面

  • 嚴格驗證所有使用者輸入($_GET、$_POST、$_REQUEST、$_COOKIE),拒絕直接用於檔案操作、SQL 拼接、Shell 指令。
  • 實施檔案完整性監控(FIM):定期雜湊比對核心檔案,異變即時告警。
  • 使用 open_basedir 限制 PHP 腳本可存取的目錄範圍。

3. 應急處理流程

  1. 立即離線受影響伺服器,防止繼續散播惡意代碼。
  2. 從乾淨備份還原,或使用已知乾淨的版本庫重新部署。
  3. 全盤掃描殘留後門(webshell、定時任務、異常帳號)。
  4. 分析入侵向量(弱密碼、未修補漏洞、第三方元件),徹底修補。
  5. 更換所有憑證(資料庫、FTP、SSH、API Key)。

合法的批量檔案處理範例(安全版)

若確有批量修改檔案的合法需求(如版權聲明更新),請使用受控、可審計的腳本:

<?php
// 僅供示範:在指定目錄下的 .php 檔案頭部加入版權聲明
$dir = '/var/www/html/project';
$pattern = '/\.php$/i';
$prefix = "isFile() && preg_match($pattern, $file->getFilename())) {
        $content = file_get_contents($file->getPathname());
        if (strpos($content, 'Copyright 2024') === false) {
            file_put_contents($file->getPathname(), $prefix . $content);
            echo "已更新: " . $file->getPathname() . "\n";
        }
    }
}
?>

原則:白名單機制、詳細日誌、乾跑模式、版本控管下執行。

結語

掛馬腳本是典型的駭客入侵後利用工具。理解其運作模式,有助於建立更完善的防禦體系。請勿下載、傳播或使用任何惡意代碼,共同維護網路空間安全。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved