pwnable 6

[Dreamhack][시스템해킹] note

[문제링크](https://dreamhack.io/wargame/challenges/1346) 문제에는 binary 파일과 dockerfile이 존재한다. 1. 분석이번에도 main함수는 존재하지 않는다. __libc_start_call_main을 통해 call rax로 main 함수에 들어온다.그렇게 얻은 어셈블리를 디컴파일한 결과는 다음과 같다. main() { func_0x4016bd(); while(true) { func_0x401662(); scanf("%d", rbp-0xc); if(*(int*)(rbp-0xc) == 4) { func_0x40127a(); continue; } if..

[Dreamhack][시스템해킹] kidheap

[문제 링크](https://dreamhack.io/wargame/challenges/1887) 문제는 binary 파일과 dockerfile이 존재한다. 1. 분석gdb로 보면 free, puts, printf, read, strtoull, malloc, setvbuf, atoi, exit은 존재한다. main 함수는 존재하지 않으니 pet pals문제처럼 gdb로 __libc_start_call_main에서 찾아 들어갔다.일단 사용자 함수들은 다음과 같다.main() { initialize() puts("** Don't worry! it's just note challenge! **")input: menu() printf("> ") read(0, rbp-0xa, 2) ..

[Dreamhack][시스템해킹] pet pals - 드림핵 서버 익스

일단 이전에 쓴 글이 있으니 링크 남겨두겠다. https://code-learn-ing.tistory.com/37 [Dreamhack][시스템해킹] pet pals[문제 링크](https://dreamhack.io/wargame/challenges/1080) 문제는 dockerfile과 binary파일이 존재한다. 1. 분석gdb로 보면, main함수를 알수가 없다. 따라서, __libc_start_main에 breakpoint를 걸고, 실제 메모리를 얻어 디code-learn-ing.tistory.com 이때, 로컬 파일 및 도커에서는 실행이 된 상태였고, 드림핵 익스만 실패한 상태였다.글 쓰고 왜 안될까 하고 보다가 설마 하고 본 부분이 해결점이었다. 1. 원인 분석일단 안되는 부분을 설명해보겠다.안..

[Dreamhack][시스템해킹] pet pals

[문제 링크](https://dreamhack.io/wargame/challenges/1080) 문제는 dockerfile과 binary파일이 존재한다. 1. 분석gdb로 보면, main함수를 알수가 없다. 따라서, __libc_start_main에 breakpoint를 걸고, 실제 메모리를 얻어 디스어셈블링해야한다.이는 디스어셈블링한후 수동으로 디컴파일 한 결과이다.main() { initialize(); menu(); scanf("%d", [rbp-0x44]); switch([rbp-0x44]) { case 1: func1([rbp-0x40]); break; case 2: func2([rbp-0x40]); break; case 3: func..

[Dreamhack][시스템 해킹] dreamvm

[문제 링크](https://dreamhack.io/wargame/challenges/93) 문제는 binary 파일 하나만 존재한다. 1. 분석gdb로 보면, 함수는 read_all, write_all.constprop, main이 있는 것을 확인할 수 있다. 또한,0x0000000000400508 _init0x0000000000400530 abort@plt0x0000000000400540 write@plt0x0000000000400550 __stack_chk_fail@plt0x0000000000400560 close@plt0x0000000000400570 read@plt0x0000000000400580 open@plt0x0000000000400590 main0x00000000004007..

[시스템 해킹][Dreamhack] string

[문제링크](https://dreamhack.io/wargame/challenges/68) 로그인 | Dreamhack dreamhack.io문제는 다음과 같다. 1. 분석일단 c코드를 살펴본다.void input(char *buf) { printf("Input: "); read(0, buf, 255);}void print(char *buf) { warnx(buf);}warnx는 printf와 같이 작동한다고 하는데 buf를 직접 하고 있으니 FSB가 가능할 것 같다. 테스트를 해보자$ ./string1. Input2. Print3. Exit> 1Input: aaaa %p %p %p %p %p %p %p %p1. Input2. Print3. Exit> 2string: aaaa 0xfff46278 0x8..