Python Internal Read Gadgets

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

Άλλοι τρόποι για να υποστηρίξετε το HackTricks:

Βασικές Πληροφορίες

Διάφορες ευπάθειες όπως οι Συμβολοσειρές Μορφοποίησης της Python ή η Ρύπανση Κλάσεων μπορεί να σας επιτρέψουν να διαβάσετε εσωτερικά δεδομένα της Python αλλά δεν θα σας επιτρέψουν να εκτελέσετε κώδικα. Επομένως, ένας pentester θα πρέπει να εκμεταλλευτεί αυτές τις δικαιώματα ανάγνωσης για να αποκτήσει ευαίσθητα προνόμια και να αναβαθμίσει την ευπάθεια.

Flask - Διάβασμα μυστικού κλειδιού

Η κύρια σελίδα μιας εφαρμογής Flask πιθανότατα θα έχει το app αντικείμενο όπου αυτό το μυστικό έχει διαμορφωθεί.

app = Flask(__name__, template_folder='templates')
app.secret_key = '(:secret:)'

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

Στην περίπτωση όπου η ευπάθεια βρίσκεται σε ένα διαφορετικό αρχείο python, χρειάζεστε ένα εργαλείο για να διασχίσετε τα αρχεία και να φτάσετε στο κύριο αρχείο για να έχετε πρόσβαση στο παγκόσμιο αντικείμενο app.secret_key και να αλλάξετε το μυστικό κλειδί του Flask και να είστε σε θέση να αναβαθμίσετε τα δικαιώματα γνωρίζοντας αυτό το κλειδί.

Ένα πακέτο όπως αυτό από αυτήν την ανάλυση από αυτό το άρθρο:

__init__.__globals__.__loader__.__init__.__globals__.sys.modules.__main__.app.secret_key

Χρησιμοποιήστε αυτό το payload για να αλλάξετε το app.secret_key (το όνομα στην εφαρμογή σας μπορεί να είναι διαφορετικό) ώστε να μπορείτε να υπογράφετε νέα και πιο προνόμια flask cookies.

Werkzeug - machine_id και node uuid

Χρησιμοποιώντας αυτό το payload από αυτό το writeup θα μπορείτε να έχετε πρόσβαση στο machine_id και το uuid node, τα οποία είναι τα κύρια μυστικά που χρειάζεστε για να δημιουργήσετε το Werkzeug pin που μπορείτε να χρησιμοποιήσετε για να έχετε πρόσβαση στην python κονσόλα στο /console αν ο λειτουργικός τρόπος αποσφαλμάτωσης είναι ενεργοποιημένος:

{ua.__class__.__init__.__globals__[t].sys.modules[werkzeug.debug]._machine_id}
{ua.__class__.__init__.__globals__[t].sys.modules[werkzeug.debug].uuid._node}

Σημείωση ότι μπορείτε να πάρετε τη τοπική διαδρομή του διακομιστή προς το app.py δημιουργώντας κάποιο σφάλμα στην ιστοσελίδα που θα σας δώσει τη διαδρομή.

Εάν η ευπάθεια βρίσκεται σε ένα διαφορετικό αρχείο python, ελέγξτε το προηγούμενο κόλπο Flask για να έχετε πρόσβαση στα αντικείμενα από το κύριο αρχείο python.

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

Άλλοι τρόποι για να υποστηρίξετε το HackTricks:

Last updated