Outils d'utilisateurs

Outils du Site


overthewire_narnia:level7

Ceci est une ancienne révision du document !


Level 7

ssh narnia7@narnia.labs.overthewire.org  
pass : ahkiaziphu
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <stdlib.h>
#include <unistd.h>
 
int goodfunction();
int hackedfunction();
 
int vuln(const char *format){
        char buffer[128];
        int (*ptrf)();
 
        memset(buffer, 0, sizeof(buffer));
        printf("goodfunction() = %p\n", goodfunction);
        printf("hackedfunction() = %p\n\n", hackedfunction);
 
        ptrf = goodfunction;
        printf("before : ptrf() = %p (%p)\n", ptrf, &ptrf);
 
        printf("I guess you want to come to the hackedfunction...\n");
        sleep(2);
        ptrf = goodfunction;
 
        snprintf(buffer, sizeof buffer, format);
 
        return ptrf();
}
 
int main(int argc, char **argv){
        if (argc <= 1){
                fprintf(stderr, "Usage: %s <buffer>\n", argv[0]);
                exit(-1);
        }
        exit(vuln(argv[1]));
}
 
int goodfunction(){
        printf("Welcome to the goodfunction, but i said the Hackedfunction..\n");
        fflush(stdout);
 
        return 0;
}
 
int hackedfunction(){
        printf("Way to go!!!!");
	fflush(stdout);
        system("/bin/sh");
 
        return 0;
}
overthewire_narnia/level7.1362320917.txt.gz · Dernière modification: 2017/04/09 15:33 (modification externe)