Pointer Redirecting

Support HackTricks

String pointers

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

Αν για παράδειγμα μια κλήση της συνάρτησης system πρόκειται να χρησιμοποιήσει τη διεύθυνση μιας συμβολοσειράς για να εκτελέσει μια εντολή, ένας επιτιθέμενος θα μπορούσε να τοποθετήσει τη διεύθυνση μιας διαφορετικής συμβολοσειράς στη στοίβα, export PATH=.:$PATH και να δημιουργήσει στον τρέχοντα κατάλογο ένα script με το όνομα του πρώτου γράμματος της νέας συμβολοσειράς καθώς αυτό θα εκτελείται από το δυαδικό.

Μπορείτε να βρείτε ένα παράδειγμα αυτού στο:

Function pointers

Το ίδιο με τη διεύθυνση συμβολοσειράς αλλά εφαρμόζεται σε συναρτήσεις, αν η στοίβα περιέχει τη διεύθυνση μιας συνάρτησης που θα κληθεί, είναι δυνατόν να αλλάξει (π.χ. να καλέσει system).

Μπορείτε να βρείτε ένα παράδειγμα στο:

References

Support HackTricks

Last updated