ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Toddler's Bottle] flag
    Wargame/pwnable.kr Challenge 2019. 2. 14. 10:59

    → 힌트는 아래와 같다.



    → 바이너리 다운로드 및 분석 환경(ubuntu)에 업로드한다.


    → gdb로 디버깅을 시도하였지만 실행 파일 포맷이 아니라는 메시지를 확인했다.



    → objdump로 바이너리 파일 포맷 정보를 확인했다.



    → gdb에서 실행파일로 인식하지 않았으나, objdump에선 elf64 실행 파일로 인식하는 것을 확인할 수 있다. 먼저 실행파일인 점과 64비트 바이너리 인점을 알 수 있다.


    → strings 도구를 이용하여 바이너리 스트링 값을 확인한다. 일일히 확인하다가 upx라는 패킹 메시지를 확인했다.




    → 메시지에도 알 수 있듯이 해당 파일은 upx 패킹된 상태로 추측되며, UPX 언팩을 진행해야 한다. unpacker를 아래와 같이 설치한다.




    → 설치 후 upx 명령어를 입력하면 사용법을 확인할 수 있다.




    → decompress인 -d 옵션을 이용하여 해당 바이너리를 언패킹한다.




    → 언패킹한 파일을 윈도우로 가져와 디스어셈블러를 이용하여 바이너리를 분석한다.




    → 해당 코드에 mov rdx, cs:flag 라는 명령어를 쉽게 찾을 수 있으며, cs:flag 해당 값을 따라가면, 다음과 같은 참조를 확인할 수 있다.



    → 해당 참조를 따라가면 다음과 같은 flag 값을 확인할 수 있다.




    → 분석환경(ubuntu)에선 strings 도구를 이용해서도 flag 값을 쉽게 확인 가능하다.


    'Wargame > pwnable.kr Challenge' 카테고리의 다른 글

    [Toddler's Bottle] random  (0) 2019.02.19
    [Toddler's Bottle] bof  (0) 2019.01.22
    [Toddlers's Bottle] collision  (0) 2019.01.17
    [Toddlers's Bottle] fd  (0) 2019.01.10

    댓글

Designed by Tistory.