当前位置: 安全纵横 > 安全公告

Oracle 登录触发器绕过漏洞

名称:Oracle登录触发器绕过漏洞(7826485)[DBxx]

受影响系统:Oracle 8-10g Rel.2

严重性:高风险

种类:数据库登录触发器安全机制绕过

厂商URL:http://www.oracle.com/

作者:Alexander Kornbrust (ak at dbappsecurity.com)

详细资料: 由于数据库登录触发器被绕过,可能导致很严重的安全问题产生。 Oracle 数据库登录触发器通常用于限制用户的访问(如有时间或IP地址限制)或者需要审计进入(客户)表。

数据库登录触发器例子:

--登录触发器只允许从下列IP地址链接的:192.168.2.121,192.168.2.123, 192.168.2.233

--登录触发器只允许在6:00-18:00的工作时间。

--这样能从绕过认证并且每个用户都能链接和执行SQL语句。

--编辑进入桌面的同样是不可执行的。

CREATE OR REPLACE TRIGGER rds_logon_trigger

AFTER LOGON ON DATABASE

BEGIN

IF SYS_CONTEXT('USERENV','IP_ADDRESS') not in ('192.168.2.121','192.168.2.123','192.168.2.233') THEN

RAISE_APPLICATION_ERROR(-20003,'You are not allowed to connect to the database');

END IF;

IF (to_number(to_char(sysdate,'HH24'))< 6) and (to_number(to_char(sysdate,'HH24')) >18) THEN

RAISE_APPLICATION_ERROR(-20005,'Logon only allowed during business hours');

END IF;

--将数据插入到审计单表中

--这个单表必须存在

NSERT INTO rds_user_log VALUES(

user,

sys_context('USERENV','SESSIONID'),

sys_context('USERENV','HOST'),

null,

null,

null,

sysdate,

to_char(sysdate, 'hh24:mi:ss'),

null,

null,

null

);

END;

补丁信息: Oracle 4月补丁集将修补这一安全问题

历史

7-jun-2006 Oracle 安全部门得到漏洞信息

8-jun-2006 证实漏洞存在

17-apr-2007 Oracle 发布07年4月份安全补丁集修补漏洞

17-apr-2007 发布安全公告