28.10.2014 Views

SQL Injection Attacks and Defense - 2009

SQL Injection Attacks and Defense - 2009

SQL Injection Attacks and Defense - 2009

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Enumerating Database<br />

Configuration Information <strong>and</strong> Schema<br />

References • Chapter 10 447<br />

Table 10.21 lists <strong>SQL</strong> statements used to extract key configuration information. Table 10.22<br />

lists the <strong>SQL</strong> statements used to enumerate schema information.<br />

Table 10.21 Extracting the Postgre<strong>SQL</strong> Database Configuration Information<br />

Data<br />

Version<br />

Current user<br />

List users<br />

Current user privileges<br />

Database server host name<br />

Query<br />

SELECT version()<br />

SELECT getpgusername();<br />

SELECT user;<br />

SELECT current_user;<br />

SELECT session_user;<br />

SELECT usename FROM pg_user<br />

SELECT usename, usecreatedb, usesuper,<br />

usecatupd FROM pg_user<br />

SELECT inet_server_addr();<br />

Table 10.22 Extracting the Postgre<strong>SQL</strong> Database Schema<br />

Data<br />

Current database<br />

List databases<br />

List tables<br />

Query<br />

SELECT current_database();<br />

SELECT datname FROM pg_database;<br />

SELECT c.relname FROM pg_catalog.pg_class c LEFT JOIN<br />

pg_catalog.pg_namespace n ON n.oid = c.relnamespace<br />

WHERE c.relkind IN ('r','')<br />

AND pg_catalog.pg_table_is_visible(c.oid)<br />

AND n.nspname NOT IN ('pg_catalog', 'pg_toast');<br />

List columns SELECT relname,A.attname FROM pg_class C,<br />

pg_namespace N, pg_attribute A, pg_type T WHERE<br />

(C.relkind='r') AND (N.nspname = 'public')<br />

AND (A.attrelid=C.oid) AND (N.oid=C.relnamespace)<br />

AND (A.atttypid=T.oid) AND(A.attnum>0)<br />

AND (NOT A.attisdropped);

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!