Kategorien
- 10.2.0.4 (1)
- 11g (3)
- Allgemein (11)
- BEA (1)
- checkpwd (4)
- CPUApr2008 (3)
- CPUJan2008 (2)
- CPUJul2007 (3)
- CPUOct2007 (1)
- CPUOct2008 (1)
- Data Vault (1)
- Database Vault (2)
- David Litchfield (4)
- Exploit (4)
- Forensics (3)
- Inguma (2)
- MacOS (1)
- Mary Ann (1)
- Oracle (2)
- Oracle Security (49)
- passwords (3)
- Podcast (1)
- rootkits (1)
- Security (9)
- Security Book (1)
- Sentrigo (1)
- software (2)
- Source Code Analysis (1)
- source code audit (3)
- SQL Injection (4)
- Tools (1)
- Trainings (1)
Letzte Einträge
- 21 Nov 2008: Oracle Database Vault Privilege Escalation Exploit published
- 14 Okt 2008: Oracle Critical Patch Update October 2008 is out
- 20 Aug 2008: New Oracle bugs and BSQL Hacker
- 9 Aug 2008: July 2008 CPU Advisory - Windows Patch update for Oracle 10.1.0.5
- 29 Jul 2008: Exploit for Oracle Bea Weblogic - Apache Connector published
- 8 Mai 2008: Checkpwd 1.23 for MacOS Intel native released
- 16 Apr 2008: Oracle CPU April 2008 - Update
- 15 Apr 2008: Oracle Critical Patch Update April 2008 is out
- 11 Apr 2008: Looking Glass and Oracle 11g
- 11 Apr 2008: Oracle Critical Patch Update Pre-Release Announcement - April 2008
Links
Archive
« 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.