ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Toddler's Bottle] flag write-up
    System hacking training/pwnable.kr 2018. 7. 4. 03:27

    오늘은 toddler's bottle 4번째 문제인 flag를 풀이를 작성해보겠습니다.

    어떤 아버지가 이런 선물을 줄까요...

    다운로드 링크에 들어가면 flag 바이너리를 받으실 수 있습니다.

    ELF 64bit 실행파일이고, statically linked가 되어있네요. 그리고 stripped되어있습니다.

    stripped 되어있다는 것은 실행 가능한 이진 프로그램들과 목적 파일들로부터 모든 디버깅과 상징 정보가 지워졌다는 것을 의미합니다.

    이로인해서 디버깅이 불가능한 상태입니다. gdb로 까봐도 소용없었습니다.

    checksec 으로 바이너리에 걸린 메모리 보호기법을 확인해보니 보통 보이지 않던 Packer라는것이 보였습니다. 내용은 UPX로 packed 되었다는군요.

    UPX(Ultimate Packer for eXecutables)는 오픈 소스 실행 파일 압축 프로그램입니다.

    따라서 바이너리를 디버깅 하기 위해 압축을 풀어줬습니다.

    upx의 사용법을 확인해보니 -d 옵션을 주면 decompress 즉, 압축을 해제가 되어 upx -d flag로 압축을 해제하고 gdb로 바이너리를 까봤습니다.

    바로 main을 디스어셈블 해보니 rdx에 flag값이 들어가는 것을 확인할 수 있었고, bp 를 걸고 rdx값을 확인해보면 flag값을 알 수 있습니다.

    반응형
Designed by Tistory.