Ho cercato per un po 'di tempo di scrivere un exploit in un programma molto semplice che ha una stringa di formato e una vulnerabilità di buffer overflow. Questo programma ha NX, SSP e ASLR.
#include <stdio.h>
int main(int argc, char *argv[]){
char buff[64];
printf(argv[1]);
printf("\n");
gets(buff);
return 0;
}
Ho aggirato con successo questo 2 primo, ma non posso battere l'ASLR.
NOTA: Bruteforce non è un'opzione
La mia idea è di divulgare una funzione di libc e sottrarre l'offset, ma non so come farlo con una vulnerabilità di stringa di formato. Inoltre, devo dire che null-bytes non può essere scritto, come input è ottenuto dagli argomenti.
Domande:
È persino sfruttabile?
Se lo è, come posso perdere una voce GOT / PLT per calcolare l'indirizzo di base della libc?
Sono sulla strada giusta?