Format Strings - Arbitrary Read Example
Last updated
Last updated
Μάθετε & εξασκηθείτε στο Hacking του AWS:HackTricks Εκπαίδευση AWS Red Team Expert (ARTE) Μάθετε & εξασκηθείτε στο Hacking του GCP: HackTricks Εκπαίδευση GCP Red Team Expert (GRTE)
Μεταγλωττίστε το με:
Το offset είναι 11 επειδή με την ρύθμιση πολλών Α και brute-forcing με έναν βρόγχο που μετακινείται από 0 έως 50, διαπιστώθηκε ότι στο offset 11 και με 5 επιπλέον χαρακτήρες (στην περίπτωσή μας pipes |
), είναι δυνατόν να ελεγχθεί μια πλήρης διεύθυνση.
Χρησιμοποίησα το %11$p
με επιπλέον γέμισμα μέχρι να δω ότι η διεύθυνση ήταν όλα 0x4141414141414141
Το φορτωμένο string μορφοποίησης είναι ΠΡΙΝ τη διεύθυνση επειδή το printf σταματάει την ανάγνωση σε ένα μηδενικό byte, οπότε αν στείλουμε πρώτα τη διεύθυνση και μετά το string μορφοποίησης, το printf δεν θα φτάσει ποτέ το string μορφοποίησης καθώς θα βρει ένα μηδενικό byte πριν από αυτό.
Η επιλεγμένη διεύθυνση είναι το 0x00400000 επειδή εκεί ξεκινάει το δυαδικό (χωρίς PIE)
Μεταγλωττίστε το με:
Ο stack_password
θα αποθηκευτεί στη στοίβα επειδή είναι μια τοπική μεταβλητή, οπότε απλά καταχρώντας το printf για να εμφανίσει το περιεχόμενο της στοίβας είναι αρκετό. Αυτό είναι ένα εκμεταλλευτικό πρόγραμμα για να διαβρεί τις πρώτες 100 θέσεις για να διαρρεύσει τους κωδικούς πρόσβασης από τη στοίβα:
Στην εικόνα είναι δυνατόν να δούμε ότι μπορούμε να διαρρεύσουμε τον κωδικό πρόσβασης από τη στοίβα στη θέση 10η
:
Εκτελώντας το ίδιο εκμεταλλευτικό πρόγραμμα αλλά με %p
αντί για %s
είναι δυνατόν να διαρρεύσουμε μια διεύθυνση σωρού από τη στοίβα στο %25$p
. Επιπλέον, συγκρίνοντας τη διαρρευσμένη διεύθυνση (0xaaaab7030894
) με τη θέση του κωδικού πρόσβασης στη μνήμη σε αυτήν τη διεργασία μπορούμε να λάβουμε τη διαφορά των διευθύνσεων:
Τώρα είναι η στιγμή να βρούμε πώς να ελέγξουμε μια διεύθυνση στη στοίβα για να έχουμε πρόσβαση από τη δεύτερη ευπάθεια της δεύτερης συμβολοσειράς μορφοποίησης:
Και είναι δυνατόν να δούμε ότι στο try 14 με τη χρήση του passing μπορούμε να ελέγξουμε μια διεύθυνση:
Μάθετε & εξασκηθείτε στο AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Μάθετε & εξασκηθείτε στο GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)