Pochi giorni fa ho iniziato a leggere un articolo sull'esclusione di SSP / ProPolice e, dopo averlo letto, ho provato i bypass, ma non hanno funzionato. Questo è il codice che ho usato:
int f (char ** argv){
int pipa; // useless variable
char *p;
char a[30];
p=a;
printf ("p=%x\t -- before 1st strcpy\n",p);
strcpy(p,argv[1]); // <== vulnerable strcpy()
printf ("p=%x\t -- after 1st strcpy\n",p);
strncpy(p,argv[2],16);
printf("After second strcpy ;)\n"); }
void main (int argc, char ** argv){
f(argv);
execl("back_to_vul","",0); //<-- The exec that fails
printf("End of program\n"); }
E il comando di compilazione è: gcc -fstack-protector -z execstack -o f f.c Quindi in pratica il mio problema è la variabile di riordino che pone & p e & a sopra il loro buffer in modo che non possa sovrascrivere l'indirizzo di p inviando un buffer di grandi dimensioni. Come potrei bypassare questo?