Oracle数据库访问限制绕过漏洞

来源:岁月联盟 编辑:zhuzhu 时间:2006-04-13
Oracle数据库访问限制绕过漏洞   受影响系统: 

  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。 

  <*来源:Alexander Kornbrust (ak@red-database-security.com) 

   链接:http://marc.theaimsgroup.com/?l=bugtraq&m=114468438319540&w=2 

  *> 

  测试方法: 

  警 告 

  以下程序(方法)可能带有安全性,仅供安全研究与教学之用。使用者风险自负! 

  假设用户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$Content$nbsp;

  * 

  ERROR at line 1: 

  ORA-01031: insufficient privileges 

  SQL> -- 创建特制的自定义视图 

  SQL> create or replace view e as select [...censored...]; 

  View created. 

  SQL> -- 通过视图丢弃数据!!! ==> 安全漏洞 !!! 

  SQL> delete from e; 

  17 rows deleted. 

   

  建议: 

  临时解决方法: 

  如果您不能立刻安装补丁或者升级,NSFOCUS建议您采取以下措施以降低威胁: 

  * 过滤9i到10g R1的连接角色,删除CREATE VIEW(以及CREATE DATABASE LINK等)权限。 

  * 从基表删除primary key。请注意这可能导致性能和完整性问题。 

  厂商补丁: 

  Oracle 

  目前厂商还没有提供补丁或者升级程序,我们建议使用此软件的用户随时关注厂商的主页以获取最新版本: 

  http://www.oracle.com

图片内容