hacktricks/binary-exploitation/heap/off-by-one-overflow.md

7 KiB
Raw Blame History

Off by one overflow

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

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

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

Έχοντας μόνο πρόσβαση σε ένα 1B υπερχείλιση επιτρέπει σε έναν εισβολέα να τροποποιήσει τις προηγούμενες πληροφορίες μεταδεδομένων μεγέθους, επιτρέποντας να παραποιήσει ποια κομμάτια πραγματικά απελευθερώνονται, δημιουργώντας τελικά ένα κομμάτι που περιέχει ένα άλλο νόμιμο κομμάτι.

Παράδειγμα Κώδικα:

Στόχος

  • Κάντε ένα κομμάτι να περιέχεται μέσα σε ένα άλλο κομμάτι, έτσι ώστε η εγγραφή πρόσβασης σε αυτό το δεύτερο κομμάτι να επιτρέπει την αντικατάσταση του περιεχόμενου του πρώτου.

Απαιτήσεις

  • Υπερχείλιση ενός byte για να τροποποιήσετε τις προηγούμενες πληροφορίες μεταδεδομένων μεγέθους

Επίθεση

  • Κρατούνται 3 κομμάτια μνήμης (α, β, γ) το ένα μετά το άλλο. Στη συνέχεια απελευθερώνεται το μεσαίο. Το πρώτο περιέχει μια ευπάθεια υπερχείλισης ενός byte και ο εισβολέας την καταχράται με ένα 0x00 (αν το προηγούμενο byte ήταν 0x10 θα κάνει το μεσαίο κομμάτι να υποδεικνύει ότι είναι 0x10 μικρότερο από ό,τι πραγματικά είναι).
  • Στη συνέχεια, δεσμεύονται 2 μικρότερα κομμάτια μέσα στο μεσαίο απελευθερωμένο κομμάτι (β), ωστόσο, καθώς το β + μέγεθος β δεν ενημερώνει ποτέ το κομμάτι γ (γιατί η δεικτοδότηση είναι μικρότερη από ό,τι θα έπρεπε).
  • Στη συνέχεια, απελευθερώνονται τα b1 και c. Καθώς το γ - μέγεθος προηγούμενου γ εξακολουθεί να δείχνει στο b (τώρα b1), και τα δύο συγχωνεύονται σε ένα κομμάτι. Ωστόσο, το b2 παραμένει μέσα μεταξύ b1 και γ.
  • Τέλος, γίνεται μια νέα κλήση malloc ανακτώντας αυτήν την περιοχή μνήμης που πρόκειται να περιέχει το b2, επιτρέποντας στον κάτοχο του νέου malloc να ελέγχει το περιεχόμενο του b2.

Αυτή η εικόνα εξηγεί τέλεια την επίθεση:

https://heap-exploitation.dhavalkapil.com/attacks/shrinking_free_chunks

Αναφορές

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

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