首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> SQL Server 資料庫 >> 關於SqlServer

資料庫攻擊手法解析:SQL 注入、權限提升、後門植入與防禦對策

     編輯:關於SqlServer

聲明

本文旨在安全教育與防禦,展示常見攻擊向量以便開發者/管理員建立防護。嚴禁用於非授權測試或非法用途。

1. 繞過前端輸入限制

  • 客戶端 JS/VBScript 驗證不可信,攻擊者可儲存頁面本地修改或停用腳本繞過。
  • 防禦: 伺服器端必須重複驗證(長度、型別、格式、編碼)。

2. SQL 注入經典向量

登入繞過

-- 原始查詢
sql = "SELECT * FROM users WHERE username='" & txtUser & "' AND pwd='" & txtPwd & "'"

-- 攻擊輸入:txtPwd = ' OR '1'='1
-- 實際執行
SELECT * FROM users WHERE username='admin' AND pwd='' OR '1'='1'

聯合查詢/資料竊取

-- 書籍查詢
SELECT name, content FROM books WHERE bookname='Linux入門'

-- 攻擊輸入:Linux入門' UNION SELECT username, password FROM users--

3. 多重陳述式執行漏洞

若驅動程式/設定允許批次執行(如 `;` 分隔),攻擊者可注入 DROP TABLE、SHUTDOWN、xp_cmdshell 等破壞指令。

輸入:Linux入門'; DROP TABLE users;--

4. 高危預設配置

  • sa 空密碼:SQL Server 安裝預設 sa 密碼為空,未修改即構成嚴重後門。
  • 連線字串洩露:`conn.inc`、`db_conn.inc` 等置於 Web 目錄且未設定對應/解析,直接下載洩露帳密。
  • 錯誤訊息回顯:詳細錯誤揭露資料表結構、路徑、程式碼片段。

5. 擴充預存程序濫用:xp_cmdshell

  • sa / `sysadmin` 角色可直接執行作業系統指令。
  • 低權限帳號可嘗試建立臨時預存程序包裝繞過(舊版漏洞)。
  • 典型攻擊鏈:`xp_cmdshell 'net user hacker P@ss /add'` → 加入 Administrators 群組 → `net use \\ip\C$` 映射磁碟 → 植入木馬/勒索軟體。

6. 留置後門技術

  • 修改系統預存程序 `sp_addlogin`、`sp_addsrvrolemember`,植入條件判斷(如特定 IP/時間/參數觸發提權)。
  • 修改後 `sysobjects` 中 `type` 變為 'U',需替換回原版系統資料列掩飾。
  • 需開啟 `allow updates` 選項(極高風險操作)。

7. 防禦清單

層面措施
開發參數化查詢/預存程序、嚴格輸入驗證、最小權限帳號、錯誤訊息通用化
資料庫停用 `xp_cmdshell`、`xp_reg*` 等高危擴充程序、移除 `sa`/重設強密碼、啟用審計
網路/主機資料庫不直接對外、防火牆限制來源 IP、關閉非必要埠、修補 OS/DB 补丁
維運定期掃描異常登入/物件變更、備份驗證、應急演練

結語

資料庫安全是系統安全的核心防線。參數化查詢 + 最小權限 + 及時修補 + 審計監控 是最具性價比的防禦組合。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved