
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 发布安全公告

