He estado intentando durante algún tiempo escribir una vulnerabilidad en un programa muy simple que tiene una cadena de formato y una vulnerabilidad de desbordamiento de búfer. Este programa tiene NX, SSP y ASLR.
#include <stdio.h>
int main(int argc, char *argv[]){
char buff[64];
printf(argv[1]);
printf("\n");
gets(buff);
return 0;
}
Pasé por alto exitosamente a este 2 primero, pero no puedo vencer a ASLR.
NOTA: Bruteforce no es una opción
Mi idea es filtrar una función libc y restar el desplazamiento, pero no sé cómo hacerlo con una vulnerabilidad de cadena de formato. Además, debo decir que no se pueden escribir null-bytes, ya que la entrada se obtiene de los argumentos.
Preguntas:
¿Esto es incluso explotable?
Si es así, ¿cómo puedo filtrar una entrada GOT / PLT para calcular la dirección base libc?
Estoy en el camino correcto?