受影响系统:
Oracle Oracle10g Application Server 9.0.4.0
Oracle Oracle10g Application Server 10.1.0.2
详细描述:
Oracle Database是一款商业性质大型数据库系统。
使用Oracle应用服务器的Oracle 10g存在字符转换问题,远程攻击者可以利用这个漏洞绕过PL/SQL排除以SYS访问数据库服务器。
Oracle 10g存在一个字符转换问题,可导致后台数据库破坏,Windows和Linux全受影响,如使用PL/SQL模块的10g数据库的Oracle HTTP服务程序, 字符设置实例为WE8ISO8859P1,当应用服务器接收到如下请求:
http://server/pls/windad/%FF%FF%FF%FF%FF
%FF转换为0xFF字节,但嗅探SNIFF应答为:
"ORA-06550: line 8, column 2: PLS-00201: identifier 'YYYYY' must be declared....."
10g藏使用WE8ISO8859P1字符设置时,转换0xFF为0x59,是大写的Y,由于这个转化,攻击者可以提交如下请求:
http://server/pls/windad/S%FFS.OWA_UTIL.CELLSPRINT?P_THEQUERY=select+username+from+all_users
并获得访问"banned"和危险的过程,HTTP服务器字符设置为AMERICAN_AMERICA.WE8ISO8859P1。
不过如果字符设置为ENGLISH_UNITEDKINGDOM.WE8MSWIN1252,不光0xFF仍旧转换为0x59,提交如下请求:
http://server/pls/windad/%9F%9F%9F%9F%9F%9F
_app_server_转换%9F为Y并允许攻击者执行如下请求:
http://server/pls/windad/S%9FS.OWA_UTIL.CELLSPRINT?P_THEQUERY=select+username+from+all_users
并获得访问"banned"和危险的过程。
补丁下载:
ORACLE已经发布patch (#68)来修正此漏洞:
http://metalink.oracle.com/