Come adattare la mia strategia di exploit quando "00" fa parte dell'indirizzo di ritorno mirato e la vittima usa strcpy

0

Intendo sfruttare il seguente programma su una macchina Linux x86 con NX abilitato (ASLR e stack canary disabilitato). L'obiettivo è ottenere una shell.

//vuln.c
#include <stdio.h>
#include <string.h>

int main(int argc, char* argv[]) {
 char buf[256]; /* [1] */ 
 strcpy(buf,argv[1]); /* [2] */
 printf("%s\n",buf); /* [3] */
 fflush(stdout);  /* [4] */
 return 0;
}

La mia strategia è usare ret2libc e iniettare il mio carico utile:

payload = <filler> + <addr of system> + <addr of exit> + <arg1 for system>

Il payload intende utilizzare l'API di sistema per chiamare / bin / sh per ottenere una shell. Tuttavia, l'addr del sistema contiene 00 nel mezzo e strcpy scaricherà il mio carico utile dopo il terminatore nullo.

Quale sarebbe la strategia per sfruttare questo binario allora?

    
posta drdot 25.07.2016 - 04:51
fonte

0 risposte

Leggi altre domande sui tag