PostgreSQL injection
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
If you are interested in hacking career and hack the unhackable - we are hiring! (wymagana biegła znajomość języka polskiego w mowie i piśmie).
This page aims to explain different tricks that could help you to exploit a SQLinjection found in a postgresql database and to compliment the tricks you can find on https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/SQL%20Injection/PostgreSQL%20Injection.md
The PostgreSQL module dblink
offers capabilities for connecting to other PostgreSQL instances and executing TCP connections. These features, combined with the COPY FROM
functionality, enable actions like privilege escalation, port scanning, and NTLM challenge response capture. For detailed methods on executing these attacks check how to perform these attacks.
You can read this example to see a CTF example of how to load data inside large objects and then exfiltrate the content of large objects inside the username of the function dblink_connect
.
Check how to compromise the host and escalate privileges from PostgreSQL in:
5432,5433 - Pentesting PostgresqlManipulating strings could help you to bypass WAFs or other restrictions. In this page you can find some useful Strings functions.
Remember that postgresql support stacked queries, but several application will throw an error if 2 responses are returned when expecting just 1. But, you can still abuse the stacked queries via Time injection:
query_to_xml
Ta funkcja zwróci wszystkie dane w formacie XML w zaledwie jednym pliku. Jest idealna, jeśli chcesz zrzucić dużo danych w zaledwie 1 wierszu:
database_to_xml
Ta funkcja zrzuci całą bazę danych w formacie XML w zaledwie 1 wierszu (bądź ostrożny, jeśli baza danych jest bardzo duża, ponieważ możesz spowodować DoS lub nawet swojego własnego klienta):
Jeśli możesz uruchamiać zapytania przekazując je w obrębie ciągu (na przykład używając funkcji query_to_xml
). Możesz użyć convert_from, aby przekazać ciąg jako hex i w ten sposób obejść filtry:
Jeśli nie możesz użyć cudzysłowów dla swojego ładunku, możesz to obejść za pomocą CHR
dla podstawowych klauzul (konkatenacja znaków działa tylko dla podstawowych zapytań, takich jak SELECT, INSERT, DELETE, itp. Nie działa dla wszystkich instrukcji SQL):
Lub z $
. Te zapytania zwracają te same wyniki:
Jeśli jesteś zainteresowany karierą w hackingu i chcesz zhakować to, co nie do zhakowania - zatrudniamy! (wymagana biegła znajomość języka polskiego w mowie i piśmie).
Ucz się i ćwicz Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE) Ucz się i ćwicz Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)