Pointer Redirecting
Punteros de Cadenas
Si una llamada a función va a usar una dirección de una cadena que se encuentra en la pila, es posible abusar del desbordamiento de búfer para sobrescribir esta dirección y poner una dirección a una cadena diferente dentro del binario.
Si, por ejemplo, una llamada a la función system
va a usar la dirección de una cadena para ejecutar un comando, un atacante podría colocar la dirección de una cadena diferente en la pila, export PATH=.:$PATH
y crear en el directorio actual un script con el nombre de la primera letra de la nueva cadena ya que esto será ejecutado por el binario.
Puedes encontrar un ejemplo de esto en:
32bit, cambiar la dirección a la cadena de flags en la pila para que sea impresa por
puts
Punteros de Función
Lo mismo que el puntero de cadena pero aplicando a funciones, si la pila contiene la dirección de una función que será llamada, es posible cambiarla (por ejemplo, para llamar a system
).
Puedes encontrar un ejemplo en:
Referencias
Last updated