Overwriting a freed chunk

Υποστηρίξτε το HackTricks

Πολλές από τις προτεινόμενες τεχνικές εκμετάλλευσης της στοίβας χρειάζεται να είναι δυνατή η αντικατάσταση δεικτών μέσα σε ελευθερωμένα τμήματα. Ο στόχος αυτής της σελίδας είναι να περιλαμβάνει τις πιθανές ευπάθειες που θα μπορούσαν να παρέχουν αυτήν την πρόσβαση:

Απλή Χρήση Μετά το Free

Αν είναι δυνατό για τον επιτιθέμενο να γράψει πληροφορίες σε ένα ελεύθερο τμήμα, μπορεί να εκμεταλλευτεί αυτό για να αντικαταστήσει τους απαιτούμενους δείκτες.

Διπλό Free

Αν ο επιτιθέμενος μπορεί να free δύο φορές το ίδιο τμήμα (ελευθερώνοντας άλλα τμήματα ανάμεσά τους πιθανώς) και να το κάνει 2 φορές στον ίδιο κάδο, θα ήταν δυνατό για τον χρήστη να εκχωρήσει το τμήμα αργότερα, να γράψει τους απαιτούμενους δείκτες και στη συνέχεια να το εκχωρήσει ξανά ενεργοποιώντας τις ενέργειες του τμήματος που εκχωρήθηκε (π.χ. επίθεση fast bin, επίθεση tcache...)

Υπερχείλιση Στοίβας

Μπορεί να είναι δυνατό να υπερχειλίσει ένα εκχωρημένο τμήμα μετά από ένα ελεύθερο τμήμα και να τροποποιήσει κάποιους κεφαλίδες/δείκτες του.

Υπερχείλιση ενός byte

Σε αυτήν την περίπτωση θα ήταν δυνατό να τροποποιήσει το μέγεθος του επόμενου τμήματος στη μνήμη. Ένας επιτιθέμενος θα μπορούσε να εκμεταλλευτεί αυτό για να κάνει ένα εκχωρημένο τμήμα να έχει μεγαλύτερο μέγεθος, στη συνέχεια να το free, κάνοντας το τμήμα να προστεθεί σε έναν κάδο διαφορετικού μεγέθους (μεγαλύτερο), στη συνέχεια να εκχωρήσει το ψεύτικο μέγεθος, και η επίθεση θα έχει πρόσβαση σε ένα τμήμα με ένα μέγεθος που είναι μεγαλύτερο από αυτό που είναι πραγματικά, παρέχοντας έτσι μια κατάσταση επικάλυψης τμημάτων, η οποία είναι εκμεταλλεύσιμη με τον ίδιο τρόπο με μια υπερχείλιση στοίβας (ελέγξτε την προηγούμενη ενότητα).

Υποστηρίξτε το HackTricks

Last updated