四、其他系統資訊獲取技巧 (需 xp_cmdshell/擴展預存程序啟用)
1. 遍歷目錄
EXEC master.dbo.xp_dirtree 'c:\'

2. 取得子目錄
EXEC master.dbo.xp_subdirs 'c:\'

3. 列舉可用磁碟分割
EXEC master.dbo.xp_availablemedia

4. 判斷檔案/目錄是否存在
EXEC master..xp_fileexist 'c:\boot.ini'

五、防禦 SQL 注入的實務妙招
策略 1:修改資料表結構增加攻擊成本
- 管理員帳號欄位型別由文字型改為
VARCHAR(255) (或備註型)。
- 密碼欄位同理調整。
策略 2:植入高熵值干擾資料
- 將真正管理員帳號置於 ID=1,密碼填入超過 100 個中文字元 (極長雜湊)。
策略 3:真實憑證藏於非首筆
策略 4:前端登入頁面長度限制 (關鍵)
- 登入表單前端/後端同時限制帳號密碼最大長度 (如 20 字元)。
- 攻擊者即使竊取 ID=1 的超長憑證,也無法通過長度驗證;真實管理員使用正常長度密碼不受影響。
總結
資料庫層面的混淆 (長度、位置) 配合應用層嚴格輸入驗證,可大幅提高攻擊者成本。但根本防禦仍在參數化查詢、最小權限、停用危險擴展預存程序 (xp_cmdshell 等)、WAF 規則、定期代碼審計。