Ho una breve domanda su un exploit buffer-overflow in un binario a 64 bit. Ultimamente, ho trovato alcune vulnerabilità di base del buffer overflow. Speravo di sapere come gestirlo, ma a quanto pare, non lo so.
Codice attività:
void vulnFunc(int x){
char buf[12];
gets(buf);
if(x!=10) system("/bin/cat flag.txt");
else printf("Nope!");
}
int main(){
vulnFunc(10);
return 0;
}
In questo scenario il buffer viene allocato DOPO arg, quindi anche se sovrascrivo il buffer, non posso cambiare il valore "x". Ho controllato sotto gdb e dopo aver messo un gruppo di "A" nel buffer, lo stack è simile a questo - > 0x0000000A 0x41414141 0x41414141 .....