관리 메뉴

IT창고

[BOF] gate-> gremlin 본문

WarGame/The Load of the BOF

[BOF] gate-> gremlin

방구석여포 2018. 2. 9. 23:13

BOF원정대(the Load of the BOF) 워게임 풀이를 해보겠습니다.

해당 워게임은 시스템 해킹 연습을 할수있으며 던전난이도 부터 페도라4층까지 영화 반지의제왕을 패러디한 워게임입니다.


자세한 내용은 http://www.hackerschool.org/HS_Boards/zboard.php?id=HS_Notice&no=1170881885 이곳을 참고합니다.

참고사항으로 해당 리눅스 버전에서 \xff를 \x00으로 인식하는경우가 있습니다 이럴때는 bash를 bash2로 바꿔서 사용해줍니다.


gate 문제입니다. 첫문제라서 메모리 보호기법이 없습니다.


문제를 확인해보면 strcpy함수와 지역변수 buffer를 사용한걸 볼수있습니다. BOF를 어떤 방법으로든 사용할수있겠네요.



gdb로 확인을 하고 싶어도 권한이 gremlin이기 때문에 복사해서 디버거를 사용해보겠습니다.


Dump of assembler code for function main:

0x8048430 <main>: push   %ebp

0x8048431 <main+1>: mov    %ebp,%esp

0x8048433 <main+3>: sub    %esp,0x100

0x8048439 <main+9>: cmp    DWORD PTR [%ebp+8],1

0x804843d <main+13>: jg     0x8048456 <main+38>

0x804843f <main+15>: push   0x80484e0

0x8048444 <main+20>: call   0x8048350 <printf>

0x8048449 <main+25>: add    %esp,4

0x804844c <main+28>: push   0

0x804844e <main+30>: call   0x8048360 <exit>

0x8048453 <main+35>: add    %esp,4

0x8048456 <main+38>: mov    %eax,DWORD PTR [%ebp+12]

0x8048459 <main+41>: add    %eax,4

0x804845c <main+44>: mov    %edx,DWORD PTR [%eax]

0x804845e <main+46>: push   %edx

0x804845f <main+47>: lea    %eax,[%ebp-256]

0x8048465 <main+53>: push   %eax

0x8048466 <main+54>: call   0x8048370 <strcpy>

0x804846b <main+59>: add    %esp,8

0x804846e <main+62>: lea    %eax,[%ebp-256]

0x8048474 <main+68>: push   %eax

0x8048475 <main+69>: push   0x80484ec

0x804847a <main+74>: call   0x8048350 <printf>

0x804847f <main+79>: add    %esp,8

0x8048482 <main+82>: leave  

0x8048483 <main+83>: ret    

0x8048484 <main+84>: nop    

0x8048485 <main+85>: nop    

0x8048486 <main+86>: nop    


0x8048482여기서 break를 걸고 확인해보겠습니다.



eip레지스터 위치를 확인했습니다.

\x41중 적당한 곳에 주소를 잡고 사용하면 됩니다.

 

주소보정을 해줍니다.

gremlin의 euid를 얻었습니다. 개인적으로 주소보정 제대로 안되면 너무 힘든거같습니다.

'WarGame > The Load of the BOF' 카테고리의 다른 글

[BOF] wolfman -> darkelf  (0) 2018.02.12
[BOF] orc -> wolfman  (0) 2018.02.12
[BOF] goblin -> orc  (0) 2018.02.11
[BOF] cobolt -> goblin  (0) 2018.02.10
[BOF] gremlin -> cobolt  (0) 2018.02.10
Comments