Developers and users sometimes request the SELECT ANY DICTIONARY system
privilege to enable them to view various data dictionary tables. This may be fine for querying DBA_TABLES,
etc, but the Oracle data dictionary contains a LOT of information. Some of the views/tables are compromising
from a security standpoint. One of
Oracle’s legendary gaffs in version 9i displayed cleartext passwords for
database links in SYS.LINK$. Yikes. In version 12c, Oracle has locked down this
type of access even further. Here’s an
example from version 11g.
SQL> create
user altdotoracle identified by altdotoracle;
User created.
SQL> grant
create session, select any dictionary to altdotoracle;
Grant
succeeded.
SQL> conn
altdotoracle/altdotoracle
SQL> select
name, password from sys.user$ where password is not null;
NAME PASSWORD
------------------------------
------------------------------
SYS AAJ125C9483Q017
SYSTEM W45825DFFFD37SE
OUTLN WW24Z1N6A8ED2E1
ALTDOTORACLE 73NH15SG3Q2364W
Armed with these password hashes, password cracking tools can be used to
compare these values to common dictionary passwords. When a match is found on a non-complex
password, your password is cracked. (Don’t
wear yourself out trying to crack the hashes above, I obfuscated them) SELECT ANY DICTIONARY no longer allows access
to dictionary objects like USER$, ENC$ and DEFAULT_PWD$. Let’s try it.
Connected to:
Oracle Database
12c Enterprise Edition Release 12.1.0.1.0 - 64bit Production
With the
Partitioning, OLAP, Advanced Analytics and Real Application Testing options
SQL> create
user altdotoracle identified by altdotoracle;
User created.
SQL> grant
create session, select any dictionary to altdotoracle;
Grant
succeeded.
SQL> conn
altdotoracle/altdotoracle
Connected.
SQL> select
name, password from sys.user$ where password is not null;
select name,
password from sys.user$ where password is not null
*
ERROR at line
1:
ORA-01031:
insufficient privileges
SQL> select
* from sys.enc$;
select * from
sys.enc$
*
ERROR at line
1:
ORA-01031:
insufficient privileges
SQL> select
* from sys.default_pwd$;
select * from
sys.default_pwd$
*
ERROR at line
1:
ORA-01031:
insufficient privileges
In my Oracle Exam I got 97% marks just studying one month. Dumpspass4sure is such authentic platform which helped me in my final exam with Pass4sure Oracle Study guide. That study guide is really combined with high efficiency of experienced team. That’s why I got my successful result. Provided demo questions on that website helped me to analyze the quality of study material in that amazing study guide. All my success is because of that stunning study guide and astonishing platform.
ReplyDeleteOk. So, looks like there's no reliable password...
ReplyDelete