Pointer Redirecting
Punteros de Cadena
Si una llamada a función va a utilizar la 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 colocar una dirección a una cadena diferente dentro del binario.
Si, por ejemplo, una llamada a la función system
va a utilizar 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 este será ejecutado por el binario.
Puedes encontrar un ejemplo de esto en:
32 bits, cambia la dirección a la cadena de flags en la pila para que sea impresa por
puts
Punteros de Función
Igual que el puntero de cadena pero aplicado 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
Última actualización