受影響系統:Oracle Database 9.2.0 .0 - 10.2.0.3
描述:BUGTRAQ ID: 17426
Oracle是大型的商業資料庫系統。Oracle 9.2.0 .0到10.2.0.3版本允許在基表中僅有SELECT許可權的用戶通過特製的視圖插入/更新/刪除資料,成功利用這個漏洞的低許可權用戶可以通過創建特製的視圖導致插入、更新和刪除資料。
這個漏洞對Oracle資料詞典的影響較低,因為大多數詞典表沒有primary key,而利用這個漏洞必須primary key。
測試方法:
警告:以下程式(方法)可能帶有攻擊性,僅供安全研究與教學之用。使用者風險自負!
假設用戶dbsnmp僅有SELECT ANY DICTIONARY許可權,無法更新資料詞典中的表格。
C:>sqlplus dbsnmp/dbsnmp SQL*Plus: Release 10.1.0 .4.0 - Production on Thu Apr 8 19:20:27 2006 Copyright (c) 1982, 2005, Oracle. All rights reserved. Connected to: Oracle Database 10g Enterprise Edition Release 10.1.0 .4.0 - Production With the Partitioning, OLAP and Data Mining options SQL> select * from v$version; BANNER Oracle Database 10g Enterprise Edition Release 10.1.0 .4.0 - Prod PL/SQL Release 10.1.0 .4.0 - Production CORE 10.1.0 .4.0 Production TNS for 32-bit Windows: Version 10.1.0 .4.0 - Production NLSRTL Version 10.1.0.4.0 - Production SQL> -- 無法從資料詞典刪除資料(正常) SQL> delete from sys.registry$; delete from sys.registry$ * ERROR at line 1: ORA-01031: insufficient privileges SQL> -- Create特製的自定義VIEW SQL> create or replace view e as select [...censored...]; View created. SQL> -- 通過VIEW刪除資料!!! ==> 安全漏洞 !!! SQL> delete from e; 17 rows deleted. |
建議,臨時解決方法:
如果您不能立刻安裝補丁或者升級,NSFOCUS建議您採取以下措施以降低威脅:
* 過濾9i到10g R1的連接角色,刪除CREATE VIEW(以及CREATE DATABASE LINK等)許可權。
* 從基表刪除primary key。請注意這可能導致性能和完整性問題。
廠商補丁: Oracle
目前廠商還沒有提供補丁或者升級程式,我們建議使用此軟體的用戶隨時關注廠商的主頁以獲取最新版本。