2.2 KiB
Pointer Redirecting
{{#include ../../banners/hacktricks-training.md}}
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.
Ein Beispiel dafür finden Sie unter:
- 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
- 32bit, Adresse zum Flags-String im Stack ändern, damit er von
puts
ausgegeben wird
Funktionszeiger
Ähnlich wie beim String-Pointer, aber auf Funktionen angewendet. Wenn der Stack die Adresse einer Funktion enthält, die aufgerufen werden soll, ist es möglich, diese zu ändern (z.B. um system
aufzurufen).
Ein Beispiel finden Sie unter:
Referenzen
{{#include ../../banners/hacktricks-training.md}}