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

SQL Server 高階注入技術(五):擴展預存程序、xp_cmdshell、註冊表操作、大量匯入匯出與 BCP 讀寫檔案

     編輯:關於SqlServer

危險擴展預存程序清單

  • xp_cmdshell:以 SQL Server 服務帳號執行任意命令(dir, net user)。若服務跑 SYSTEM/域管理員,後果災難性。
  • xp_regread / xp_regwrite / xp_regenumvalues ...:讀寫登錄鍵值,可竄改 SNMP 社群字串、服務啟動參數、甚至 SAM(若服務為本地帳號)。
  • xp_servicecontrol:啟動/停止/暫停服務。
  • xp_availablemedia, xp_dirtree, xp_enumdsn, xp_loginconfig, xp_makecab, xp_ntsec_enumdomains:偵察檔案系統、ODBC 資料源、安全配置、域資訊。
  • xp_terminate_process:結束指定 PID 進程。

連結伺服器攻擊面

若已配置 sp_addlinkedserver + sp_addlinkedsrvlogin,攻擊者可用 OPENQUERY 跳板攻擊其他資料庫實例。

自訂擴展預存程序(DLL 注入)

攻擊者上傳惡意 DLL(HTTP/FTP/BCP 等),註冊:sp_addextendedproc 'xp_webserver', 'c:\temp\xp_foo.dll',執行 EXEC xp_webserver 後再 sp_dropextendedproc 清理痕跡。

BULK INSERT 讀取任意檔案

CREATE TABLE foo(line VARCHAR(8000));
BULK INSERT foo FROM 'c:\inetpub\wwwroot\process_login.asp';
-- 配合錯誤回顯或 UNION 查詢將檔案內容帶出

BCP 寫入任意檔案(需命令列登入)

bcp "SELECT * FROM test..foo" queryout c:\inetpub\wwwroot\runcommand.asp -c -Slocalhost -Usa -Pfoobar

緩解措施: 移除 PUBLIC 對高危擴展預存程序的 EXECUTE 權限;禁用 xp_cmdshell(sp_configure 'xp_cmdshell', 0);服務帳號使用最低權限網域帳號;啟用防火牆限制對外連線;稽核擴展預存程序呼叫。

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