Tengo una pregunta rápida sobre un exploit de desbordamiento de búfer en un binario de 64 bits. Últimamente, he encontrado algunas vulnerabilidades básicas de desbordamiento de búfer. Esperaba saber cómo manejarlo, pero aparentemente, yo no.
Código de tarea:
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;
}
En este escenario, el búfer se asigna DESPUÉS de arg, por lo que incluso si anulo el búfer, no puedo cambiar el valor de "x". Revisé debajo del gdb y después de poner un montón de "A" en el búfer, la pila se ve así: > 0x0000000A 0x41414141 0x41414141 .....