Pointer Redirecting
Zeigerumleitung
Wenn ein Funktionsaufruf die Adresse eines Strings verwenden soll, der sich im Stack befindet, ist es möglich, den Pufferüberlauf zu missbrauchen, um diese Adresse zu überschreiben und eine Adresse zu einem anderen String innerhalb des Binärprogramms zu platzieren.
Wenn beispielsweise ein Funktionsaufruf von system
die Adresse eines Strings verwenden soll, um einen Befehl auszuführen, 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.
Ein Beispiel hierfür finden Sie unter:
32-Bit, ändern Sie die Adresse zum Flags-String im Stack, damit er von
puts
gedruckt wird
Funktionszeiger
Gleich wie bei Zeiger auf Strings, aber angewendet auf Funktionen, wenn der Stack die Adresse einer Funktion enthält, die aufgerufen wird, ist es möglich, sie zu ändern (z. B. um system
aufzurufen).
Ein Beispiel hierfür finden Sie unter:
Referenzen
Last updated