Buffer Overflow 0

Para esta prueba solo se necesita saber explotar una vulnerabilidad overflow.

Leemos el código y observamos que hay un problema, cuando gets pasa directamente un array de 100 a otro array de 16 usando strcpy, esto produce un overflow.

vamos a colocar un break en 0x56556462 y observemos la cantidad que es colocada para usar gets

ahora vamos a comparar con strcpy de la función vuln.

0x56556374 <+33>: call 0x56556170

0x56556379 <+38>: add esp,0x10

Recordemos que call es en realidad call + 1 por eso se llama a strcpy con un espacio de 16 (0x10).

Ahora veamos que pasa cuando sobreescribimos.

Podemos ver que "esp" toma got de puts donde se encuentra la flag.

Listo.