상세 컨텐츠

본문 제목

[HackCTF-Forensic#7] Magic PNG - 150 points

Forensics/HackCTF

by bing_su 2022. 1. 16. 00:34

본문

반응형
SMALL

HackCTF Forensic 7번째 문제는 "Magic PNG"다.

첨부파일로 주어진 압축 파일을 해제하면 MP__1.PNG 파일이 있다.

MP__1.PNG 파일 확인

하지만 MP__1.PNG 파일을 확인하면 잘못된 파일 형식이라고 뜬다. 파일 구조를 확인해 볼 필요가 있다.

PNG Header Signature

일단 PNG Header Signature 값은 "89 50 4E 47 0D 0A 1A 0A"여야 하므로 해당 부분을 수정해줬다.

PNG Footer Signature

PNG Footer Signature 값은 "49 45 4E 44 AE 42 60 82"이므로 정상적임을 확인할 수 있다.

MP__1.PNG의 내용

MP__1.PNG 파일을 열어보면 무언가 잘려 있는 듯한 느낌을 주는 사진이 있다. 이 파일의 크기가 793KB로 보통 PNG 파일에 비해 조금 커서 사진 파일 안에 또 다른 파일이 있는지 HxD로 살펴본 결과 별다른 소득은 없었다.

TweakPNG 툴을 사용하여 MP__1.PNG 내용을 확인하려고 시도

APNG와 관련된 문제일까 싶어서 TweakPNG 툴을 통해 구조를 확인하려고 했다. 하지만 IDAT chunk에 오류가 있다는 창이 먼저 떴다. IDAT chunk는 "Image Data"의 약자로 실질적 이미지 데이터가 들어있는 부분이다. 하나의 이미지 내에서도 여러 개의 IDAT chunk를 가질 수 있는데 아마 특정 chunk에 잘못된 data가 들어있어서 이미지의 특정 부분을 우리가 못 보는 것 같다.

참고) TweakPNG 설치 링크: https://entropymine.com/jason/tweakpng/

 

TweakPNG

TweakPNG TweakPNG is a low-level utility for examining and modifying PNG image files. It supports Windows XP and higher. In order to make much use of it, you will have to be at least somewhat familiar with the internal format of PNG files. For information

entropymine.com

TweakPNG로 본 MP__1.PNG 구조

TweakPNG로 먼저 보면 다른 부분은 전부 대문자 IDAT로 저장되어 있는데 한 부분만 소문자 idat로 저장되어있다. 이 부분을 HxD를 사용하여 대문자 IDAT로 수정해주면 정상적으로 이미지 데이터가 읽어져 잘린 부분 없이 전체적인 사진을 볼 수 있을 것 같다.  

HxD를 사용해 idat -> IDAT로 변경

HxD를 사용하여 문제의 idat로 저장되어 있던 부분을 IDAT로 바꿨다. 

복구한 파일을 다시 열면 정상적으로 이미지 데이터를 읽어올 수 있기 때문에 전체적인 사진이 보인다. 해당 플래그를 인증하면 문제가 풀린다.

반응형
LIST

관련글 더보기

댓글 영역