본문 바로가기
STUDY/pwnable.kr

[pwnable.kr] flag

by CH@3M 2019. 11. 11.

pwnable.kr의 flag라는 문제이다! 이번 문제는 pwanble이 아니라 reversing이라고 한다!

바이너리를 받아서 gdb를 실행시켜보니 자꾸 심볼이 없다고 한다. 이럴 경우 packing이 되어있나?! 하고 의심해 봐야한다고 한다 ㅠㅠ

실행시켜 보면 malloc하고 strcpy해서 flag를 획득하라고 한다.

IDA로 보아도 디컴파일 해주지 못한다!

그리고 IDA로 보다보면 의심되는 부분을 발견할 수 있다. 그렇다! 이 바이너리는 upx packing이 되어있는 것이었다!

그리고 다른 롸업들을 보다보니 안건데.. 이래서 문제를 잘 읽어야한다고... 스크립트에 이렇게 친절하게 "Papa brought me a packed present! let's open it." 이라고 packing이 되어있음을 알려주고 있었다.

upx unpacking은 https://github.com/upx/upx/releases여기서 다운받아 사용할 수 있다. windows용과 linux용이 모두 존재한다. 나는 linux용으로 진행하였다.

root@ubuntu:/home/ubuntu/study/pwnkr/flag# ls
flag  upx-3.95-amd64_linux.tar.xz
root@ubuntu:/home/ubuntu/study/pwnkr/flag# xz -d upx-3.95-amd64_linux.tar.xz 
root@ubuntu:/home/ubuntu/study/pwnkr/flag# ls
flag  upx-3.95-amd64_linux.tar
root@ubuntu:/home/ubuntu/study/pwnkr/flag# tar -xf upx-3.95-amd64_linux.tar 
root@ubuntu:/home/ubuntu/study/pwnkr/flag# ls
root@ubuntu:/home/ubuntu/study/pwnkr/flag/upx-3.95-amd64_linux# ./upx -d ../flag 
                       Ultimate Packer for eXecutables
                          Copyright (C) 1996 - 2018
UPX 3.95        Markus Oberhumer, Laszlo Molnar & John Reiser   Aug 26th 2018

        File size         Ratio      Format      Name
   --------------------   ------   -----------   -----------
    883745 <-    335288   37.94%   linux/amd64   flag

Unpacked 1 file.

 

이렇게 언패킹한 후 다시 바이너리를 보자! 전에 비해 너무 잘보인다..! IDA로 flag 문자열을 따라가면 flag를 발견할 수 있다!

gdb도 넘나 잘된다!

아무튼!! 다음과 같은 flag를 획득할 수 있다! UPX...? sounds like a delivery service :)

끝!

 

반응형

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

[pwnable.kr] random  (0) 2020.02.07
[pwnable.kr] passcode  (0) 2019.11.27
[pwnable.kr] bof  (0) 2019.11.11
[pwnable.kr] unlink  (0) 2019.10.07