-
[Toddler's Bottle] flagWargame/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 댓글