Oracle是一款大型数据库软件。 Oracle在处理部分参数和函数时缺少充分缓冲区边界检查,远程攻击者可以利用这个漏洞进行缓冲区溢出攻击,可能以数据库进程权限执行任意指令。 Oralce存在多个缓冲区溢出,具体如下: 1、TIME_ZONE参数指定默认时区置换,TIME_ZONE仅是一个会话参数,而不是一个初始化参数,一个类似的合法请求为: ALTER SESSION SET TIME_ZONE = \'\'-5:00\'\'; TIME_ZONE参数由于缺少充分缓冲区边界检查,提交包含超长字符串的请求可导致触发缓冲区溢出,如: ALTER SESSION SET TIME_ZONE = \'\'<long string here>\'\'; SELECT CURRENT_TIMESTAMP, LOCALTIMESTAMP FROM DUAL; 默认情况下,任意用户可以提交此请求。上面的攻击必须使用SCOTT / TIGER帐户。 2、NUMTOYMINTERVAL是用于转换N为一个INTERVAL YEAR TO MONTH,n可以为数字或数字表达式,char_expr可以为CHAR, VARCHAR2, NCHAR, or NVARCHAR2数据类型,类似合法请求为: SELECT last_name, hire_date, salary, SUM(salary) OVER (ORDER BY hire_date RANGE NUMTOYMINTERVAL(1,\'\'year\'\') PRECEDING) AS t_sal FROM employees; n = 1 char_expr = year NUMTOYMINTERVAL函数由于对参数缺少充分缓冲区边界检查,提交包含超长字符串的请求可导致触发缓冲区溢出,如: SELECT last_name, hire_date, salary, SUM(salary) OVER (ORDER BY hire_date RANGE NUMTOYMINTERVAL(1,\'\'<long string here>\'\') PRECEDING) AS t_sal FROM employees; 默认情况下,任意用户可以提交此请求。上面的攻击必须使用SCOTT / TIGER帐户。...
Oracle是一款大型数据库软件。 Oracle在处理部分参数和函数时缺少充分缓冲区边界检查,远程攻击者可以利用这个漏洞进行缓冲区溢出攻击,可能以数据库进程权限执行任意指令。 Oralce存在多个缓冲区溢出,具体如下: 1、TIME_ZONE参数指定默认时区置换,TIME_ZONE仅是一个会话参数,而不是一个初始化参数,一个类似的合法请求为: ALTER SESSION SET TIME_ZONE = \'\'-5:00\'\'; TIME_ZONE参数由于缺少充分缓冲区边界检查,提交包含超长字符串的请求可导致触发缓冲区溢出,如: ALTER SESSION SET TIME_ZONE = \'\'<long string here>\'\'; SELECT CURRENT_TIMESTAMP, LOCALTIMESTAMP FROM DUAL; 默认情况下,任意用户可以提交此请求。上面的攻击必须使用SCOTT / TIGER帐户。 2、NUMTOYMINTERVAL是用于转换N为一个INTERVAL YEAR TO MONTH,n可以为数字或数字表达式,char_expr可以为CHAR, VARCHAR2, NCHAR, or NVARCHAR2数据类型,类似合法请求为: SELECT last_name, hire_date, salary, SUM(salary) OVER (ORDER BY hire_date RANGE NUMTOYMINTERVAL(1,\'\'year\'\') PRECEDING) AS t_sal FROM employees; n = 1 char_expr = year NUMTOYMINTERVAL函数由于对参数缺少充分缓冲区边界检查,提交包含超长字符串的请求可导致触发缓冲区溢出,如: SELECT last_name, hire_date, salary, SUM(salary) OVER (ORDER BY hire_date RANGE NUMTOYMINTERVAL(1,\'\'<long string here>\'\') PRECEDING) AS t_sal FROM employees; 默认情况下,任意用户可以提交此请求。上面的攻击必须使用SCOTT / TIGER帐户。 3、NUMTODSINTERVAL是用于转换n为INTERVAL DAY TO SECOND的函数,n可以为数字或数字表达式,char_expr可以为CHAR, VARCHAR2, NCHAR, or NVARCHAR2数据类型,类似合法请求为: SELECT manager_id, last_name, hire_date, COUNT(*) OVER (PARTITION BY manager_id ORDER BY hire_date RANGE NUMTODSINTERVAL(100, \'\'day\'\') PRECEDING) AS t_count FROM employees; n = 100 char_expr = day NUMTODSINTERVAL函数由于对参数缺少充分边界缓冲区检查,提交包含超长字符串的请求可导致触发缓冲区溢出,如: SELECT empno, ename, hiredate, COUNT(*) OVER (PARTITION BY empno ORDER BY hiredate RANGE NUMTODSINTERVAL(100, \'\'<long string here>\'\') PRECEDING) AS t_count FROM emp; 默认情况下,任意用户可以提交此请求。上面的攻击必须使用SCOTT / TIGER帐户。 4、FROM_TZ函数用于转换时间戳,类似请求如下: SELECT FROM_TZ(TIMESTAMP \'\'2003-09-8 08:00:00\'\', \'\'12:00\'\') FROM DUAL; 此语法返回如下值: which would return the values FROM_TZ函数对TZD参数缺少充分边界缓冲区检查,提交包含超长字符串的请求可导致触发缓冲区溢出,如: SELECT FROM_TZ(TIMESTAMP \'\'2000-03-28 08:00:00\'\',\'\'long string here\'\') FROM DUAL; 默认情况下,任意用户可以提交此请求。