# Ανακατεύθυνση Δεικτών {{#include ../../banners/hacktricks-training.md}} ## Δείκτες Συμβολοσειρών Αν μια κλήση συνάρτησης πρόκειται να χρησιμοποιήσει μια διεύθυνση μιας συμβολοσειράς που βρίσκεται στη στοίβα, είναι δυνατόν να εκμεταλλευτούμε την υπερχείλιση του buffer για να **επικαλύψουμε αυτή τη διεύθυνση** και να βάλουμε μια **διεύθυνση σε μια διαφορετική συμβολοσειρά** μέσα στο δυαδικό. Αν για παράδειγμα μια κλήση της συνάρτησης **`system`** πρόκειται να **χρησιμοποιήσει τη διεύθυνση μιας συμβολοσειράς για να εκτελέσει μια εντολή**, ένας επιτιθέμενος θα μπορούσε να τοποθετήσει τη **διεύθυνση μιας διαφορετικής συμβολοσειράς στη στοίβα**, **`export PATH=.:$PATH`** και να δημιουργήσει στον τρέχοντα κατάλογο ένα **σενάριο με το όνομα του πρώτου γράμματος της νέας συμβολοσειράς** καθώς αυτό θα εκτελείται από το δυαδικό. Μπορείτε να βρείτε ένα **παράδειγμα** αυτού στο: - [https://github.com/florianhofhammer/stack-buffer-overflow-internship/blob/master/ASLR%20Smack%20and%20Laugh%20reference%20-%20Tilo%20Mueller/strptr.c](https://github.com/florianhofhammer/stack-buffer-overflow-internship/blob/master/ASLR%20Smack%20and%20Laugh%20reference%20-%20Tilo%20Mueller/strptr.c) - [https://guyinatuxedo.github.io/04-bof_variable/tw17_justdoit/index.html](https://guyinatuxedo.github.io/04-bof_variable/tw17_justdoit/index.html) - 32bit, αλλάξτε τη διεύθυνση στη συμβολοσειρά flags στη στοίβα ώστε να εκτυπωθεί από `puts` ## Δείκτες Συναρτήσεων Το ίδιο με τον δείκτη συμβολοσειρών αλλά εφαρμόζεται σε συναρτήσεις, αν η **στοίβα περιέχει τη διεύθυνση μιας συνάρτησης** που θα κληθεί, είναι δυνατόν να **αλλάξει** (π.χ. να καλέσει **`system`**). Μπορείτε να βρείτε ένα παράδειγμα στο: - [https://github.com/florianhofhammer/stack-buffer-overflow-internship/blob/master/ASLR%20Smack%20and%20Laugh%20reference%20-%20Tilo%20Mueller/funcptr.c](https://github.com/florianhofhammer/stack-buffer-overflow-internship/blob/master/ASLR%20Smack%20and%20Laugh%20reference%20-%20Tilo%20Mueller/funcptr.c) ## Αναφορές - [https://github.com/florianhofhammer/stack-buffer-overflow-internship/blob/master/NOTES.md#pointer-redirecting](https://github.com/florianhofhammer/stack-buffer-overflow-internship/blob/master/NOTES.md#pointer-redirecting) {{#include ../../banners/hacktricks-training.md}}