푸르미르

pwnable.kr 4.flag 본문

SECURITY/pwnable

pwnable.kr 4.flag

((•_•)) 2021. 3. 31. 00:01

 

리버싱에 관련있는 거 같은데

문제에서 하라는 대로 다운을 받았다. 

 

 

다운 받은 파일에 대해 궁금하니 ls -al

 

 

해당 파일을 실행파일로 바꿔보자

chmod +x flag

 

 

실행파일로 바꾼 flag파일을 실행시켜보자 

 

 

I will malloc() and strcpy the flag there. take it.

=> malloc,strcpy, flag 그곳에 둘것이니 가져가시오.

이것으로 본다면 flag는 c언어로 작성된 파일이라는 것을 알 수 있다.

 

gdb로 flag 파일을 디버깅 하려했더니 

 

No debugging symbols found in flag

=> 가능성 1. 파일 손상 2. 암호화 되어있어 읽지 못함

 

flag파일을 윈도우로 가져와서 freeware을 돌려보았다. 

맨아래 unpack info에서 detected UPX! PACKER 이 문구로 보아 UPX 패킹으로 인해 어셈블리 코드를

읽어내지 못했던 것이였다.

 

UPX 패킹을 풀어보자.

UPX설치를 위해 내가 따라 했던 사이트.

zoomadmin.com/HowToInstall/UbuntuPackage/upx

STEP1까지 따라하다가 안되서 뻘짓하다가 이상한거 다운받았다.

 

 

https://github.com/upx/upx/releases

결국 여기가서 직접 다운받음...

다운 받고 압축 푸는 거 잊지 말긔

 

flag 파일 mv 명령어로 upx 파일 안에 넣어주구~ 

 

 

terminal에서 해당 파일의 위치로 가서 ./upx flag 해주면 upx패킹이 풀린다. (언패킹)

 

 

자 다시,

gdb로 파일을 분석해보자.

 

gdb flag해주고

disas main이라 쳐주면, => main 분석

 

 

드디어 어셈블리코드!!!

flag파일의 주소는 0x6c2070 

 

flag를 알아내었다.

답은 flag: UPX...? sounds like a delivery service :)

'SECURITY > pwnable' 카테고리의 다른 글

pwnable.kr 6.random  (0) 2021.04.06
pwnable.kr 5.passcode (문제 파악)  (0) 2021.03.31
pwnable.kr 3.bof  (2) 2021.03.24
pwnable.kr 2.collision  (0) 2021.03.24
pwnable.kr 1. fd  (2) 2021.03.22