Kategorien
- 11g (8)
- Allgemein (27)
- checkpwd (4)
- CPUApril2009 (2)
- CPUJan2009 (3)
- CPUJul2009 (2)
- CPUOct2009 (3)
- David Litchfield (7)
- Exploit (20)
- Forensics (4)
- Oracle Security (79)
- passwords (7)
- SAP (1)
- Security (18)
- Sentrigo (5)
- software (8)
- source code audit (5)
- SQL Injection (23)
- Tools (19)
- Trainings (2)
- Tutorial (2)
Letzte Einträge
- 25 Feb 2010: 2 new ways to create error messages
- 24 Feb 2010: How to Prevent a User Granted the ALTER USER Privilege From Changing SYS/SYSTEM password and how to bypass it
- 23 Feb 2010: New Repscan 3.0 is available
- 22 Feb 2010: Really good whitepaper about "Hacking Oracle from the Web"
- 15 Feb 2010: Interesting Article about SQL Injection in Oracle by Mike Smithers
- 5 Feb 2010: Oracle Blackhat video removed from Website
- 4 Feb 2010: Oracle 11g 0day exploit published
- 30 Jan 2010: Selling stolen bank data to the government for 2.5 Million EUR?
- 6 Dez 2009: Dennis Yurichev wrote an article about his FPGA Oracle password cracker
- 29 Nov 2009: IGHASHGPU - Cracking Oracle Passwords with 790 Million Passwords/second
Links
Oracle Security
Other Blogs
SQL Injection
Trainings
Archive
- Februar 2010
- Januar 2010
- Dezember 2009
- November 2009
- Oktober 2009
- September 2009
- August 2009
- Juli 2009
- Mai 2009
- April 2009
- März 2009
- Februar 2009
- Januar 2009
- Dezember 2008
- November 2008
- Oktober 2008
- August 2008
- Juli 2008
- Mai 2008
- April 2008
- März 2008
- Februar 2008
- Januar 2008
- Dezember 2007
- November 2007
- Oktober 2007
- September 2007
- August 2007
- Juli 2007
- Juni 2007
- Mai 2007
« Aaron Newman criticize Oracle patch policies | Mary Ann Davidson: Applications will have to defend themselves from attacks »
Oracle Security Riddle
During Oracle security audits we find from time to time the following (unsecure) code. Do you see the vulnerability and do you know how to exploit it?
Solution coming soon…
———-Code without exception handling—
FUNCTION CHGPWD (
P_USER VARCHAR2,
P_PWD VARCHAR2)
RETURN BOOLEAN IS
L_STMT VARCHAR2(255);
BEGIN
L_STMT:= ‘ALTER USER “‘ || P_USER || ‘” IDENTIFIED BY “‘ || P_PWD||’”‘;
EXECUTE IMMEDIATE L_STMT;
RETURN TRUE;
END;
1 Antwort auf “Oracle Security Riddle”
Antwort schreiben
Sie müssen als angemeldet sein, um einen Kommentar schreiben zu können.

29 Mai 2007 bei 01:56
Well it isn’t invoker rights so the privileges it runs with might allow it to alter any user’s password (and presumably do, otherwise why not have the routine just derive the current user). I would generally think that is enough, but a suitably crafted P_USER (including closing quotes and a — comment) could allow it do other ALTER USER operations, such as Account unlock.
Being pedantic, it would actually error as it’s not returning a true/false as indicated, but the error wouldn’t prevent the ALTER USER from happening. If this was really ‘live’, then it probably means either the errors are trapped and hidden or that it generates so many errors that they are never looked at. Either way any cracker’s attempt to abuse the routine would never be noticed.
AK> sorry I forgot to copy the error handling and return value.