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

Oracle Web環境SQL注入攻擊技術深度剖析

     編輯:Oracle 資料庫基礎

從資料庫層面到Web應用層的注入攻擊面分析

Oracle豐富的內建套件、預設帳戶、存儲過程特權機制,為攻擊者提供了廣泛攻擊面。本文系統梳理從直接資料庫連線到Web應用間接注入的完整攻擊鏈。

一、資料庫層直接攻擊向量

  • 預設帳戶弱口令:多內建帳戶擁有CONNECT權限,若監聽器未設密碼,可透過tnscmd.pl枚舉SID遠程登入
  • 存儲過程權限提升:Definer's Rights模式下,PUBLIC可執行的系統存儲過程若存在注入,可導致權限提升至DBA
  • 系統表資訊洩露:ALL_TABLES、ALL_TAB_COLUMNS、V_$OPTION等視圖可枚舉完整結構

二、PL/SQL注入分類與利用

注入類型特徵利用難度
DML語句注入不支援多語句,需自建函數/游標執行DDL中
游標注入利用DBMS_SQL包繞過限制高
匿名PL/SQL區塊注入輸入置於BEGIN/END間,可直接執行多語句,幾乎無限制低(危險度最高)

三、Web環境注入適配

  • ASP/.NET/JSP:參數過濾較少,.NET/JSP強型別導致數值型參數注入較難,字串型參數為主
  • PHP:單引號被轉義為\',Oracle以''轉義,需避開單引號構造Payload
  • 參數化查詢:採用綁定變數則免疫注入,字串拼接方式風險最高

四、識別Oracle後端特徵

  • 支援--註釋,不支援;分隔多語句
  • 特有函數:UTL_HTTP.REQUEST、SYS_CONTEXT
  • 連接運算子||:CHR(123)||CHR(123)=CHR(123)||CHR(123)可驗證
  • 錯誤回顯洩露真實資料庫類型

五、防禦建議

  1. 移除/鎖定預設帳戶,設定強密碼與監聽器認證
  2. 最小權限原則:撤銷PUBLIC對敏感套件的執行權限
  3. 強制使用參數化查詢/綁定變數
  4. 啟用資料庫防火牆與審計功能
  5. 定期套用安全補丁(如CPU/PSU)
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved