Pointer Redirecting
String-Pointer
Wenn ein Funktionsaufruf eine Adresse eines Strings verwenden soll, der sich im Stack befindet, ist es möglich, den Buffer Overflow auszunutzen, um diese Adresse zu überschreiben und eine Adresse zu einem anderen String im Binärprogramm zu setzen.
Wenn beispielsweise ein system
Funktionsaufruf die Adresse eines Strings zur Ausführung eines Befehls verwenden soll, könnte ein Angreifer die Adresse eines anderen Strings im Stack platzieren, export PATH=.:$PATH
und im aktuellen Verzeichnis ein Skript mit dem Namen des ersten Buchstabens des neuen Strings erstellen, da dies vom Binärprogramm ausgeführt wird.
Du kannst ein Beispiel dafür finden in:
32bit, Adresse des Flags-Strings im Stack ändern, damit er von
puts
ausgegeben wird
Funktions-Pointer
Gleich wie String-Pointer, aber auf Funktionen angewendet. Wenn der Stack die Adresse einer Funktion enthält, die aufgerufen werden soll, ist es möglich, sie zu ändern (z.B. um system
aufzurufen).
Du kannst ein Beispiel finden in:
Referenzen
Last updated