Korean
<< Back
VID 22172
Severity 40
Port 80, ...
Protocol TCP
Class WWW
Detailed Description The Oracle 9i Application server allows anonymous user to access Stored Procedures via OWA_UTIL PL/SQL package.
Oracle 9i Application server has the OWA_UTIL package that provides web access to many Stored Procedures, is installed as part of the PL/SQL(Procedural Language/Structured Query Language) Toolkit. By default, this OWA_UTIL PL/SQL package allows anonymous user to access these procedures via web without authentication.
The following describes the list of procedures accessed through the OWA_UTIL PL/SQL package and the impacts via these procedures:

* OWA_UTIL.signature :
It's used to verify the access to OWA_UTIL package, depending on the return messages of the URL http://oracle_server/pls/dadname/owa_util.signature. If the protection is configured, an attacker can insert the space, tab, new line character for bypassing the protection as the following URL:
http://oracle_server/pls/dadname/%20owa_util.signature
http://oracle_server/pls/dadname/%0aowa_util.signature
http://oracle_server/pls/dadname/%08owa_util.signature

* OWA_UTIL.showsource :
It allows an attacker to view the source code of the specified PL/SQL application by requesting the URL "http://oracle_server/pls/dadname/owa_util.showsource?cname=books", will return the source code of book package.

* OWA_UTIL.cellsprint:
It allows an attacker to run arbitrary SELECT SQL queries. The database link table, sys.link$ has a list of other database server and the information of connection such as ID, Password, etc. By running queries about this sys.link$ table, an attacker can causes the database server to lookup the name of the other database server and then connect to it with the user ID and Password defined.

http://oracle_server/pls/dadname/owa_util.cellsprint?p_theQuery=select * from sys.dba_users@other.world

* OWA_UTIL.listprint:
It's like 'cellsprint', allows an attacker to run arbitrary SQL queries, but only returns specified columns.

* OWA_UTIL.show_query_columns :
It allows an attacker to obtain a list of the column names of the database table.
http://oracle_server/pls/dadname/owa_util.show_query_columns?ctable=sys.dba_users

As the result, since these procedures disclose the sensitive information, a remote attacker can view the source code of PL/SQL applications and obtain credentials and access to other database server, and run SQL queries on the accessible database server.

* Platforms Affected :
All(*nix, Windows) with Oracle9i Application Server 1.0.2.X

* References:
http://online.securityfocus.com/bid/4294
http://www.nextgenss.com/papers/hpoas.pdf
Recommendation Block or restrict Access to PL/SQL procedures and applications:

1. Open the PL/SQL gateway configuration file, [Oracle_Home_Dir]/Apache/modplsql/cfg/wdbsvr.app
2. Add the following rule to this file.
exclusion_list = *(*, account*, sys*, dbms_*, owa.*, htp.*, htf.*

For more information, refer to the section titled "Protecting the PL/SQL Procedures Granted to PUBLIC" in the "Oracle9iAS Security Guide" core documentation from "Getting Started" of the site http://download-west.oracle.com/docs/cd/A97329_03/index.htm
Related URL CVE-2002-0560 (CVE)
Related URL (SecurityFocus)
Related URL (ISS)