El objetivo de la prueba es modificar un espacio en memoria para lograr sobreescribir la pila.



Esta prueba muestra la vulnerabilidad que puede haber en memoria.

Nota importante: Cada vez que hago esto, coloco intrucciones a gdb que creo son muy necesarios, ya que cada que el debugger abre una aplicación, lo hace en un espacio de memoria relativa y al colocarle, unset env LINES y unset env COLUMNS, GDB muestra el uso de memoria real o muy cercano al que usa realmente la aplicación, facilitando la explotación de la vulnerabilidad.

Ejecutamos la aplicación para ver que hace.



Encontramos printfs que utiliza la aplicación.



De paso buscamos funciones que puedan estar ocultas.



También encontramos que tiene temporizador y encontramos el mensaje que buscamos.





Esta vez metemos bytes al azar y encontramos que con 28 bytes, se puede sobreescribir la pila y metemos después 4 para diferenciar.







Bien, usemos la técnica de GOT, y sobreescribimos el printf que no esta bien definido, y con eso podemos sobreescribir la pila y lograríamos llegar al objetivo.





Desafortunadamente no se puede lograr en modo debuger.



Hagamoslo en la práctica pero esta vez en python para hacerlo más rápido.





Listo.