HackCTF Forensic 7번째 문제는 "Magic PNG"다.
첨부파일로 주어진 압축 파일을 해제하면 MP__1.PNG 파일이 있다.
하지만 MP__1.PNG 파일을 확인하면 잘못된 파일 형식이라고 뜬다. 파일 구조를 확인해 볼 필요가 있다.
일단 PNG Header Signature 값은 "89 50 4E 47 0D 0A 1A 0A"여야 하므로 해당 부분을 수정해줬다.
PNG Footer Signature 값은 "49 45 4E 44 AE 42 60 82"이므로 정상적임을 확인할 수 있다.
MP__1.PNG 파일을 열어보면 무언가 잘려 있는 듯한 느낌을 주는 사진이 있다. 이 파일의 크기가 793KB로 보통 PNG 파일에 비해 조금 커서 사진 파일 안에 또 다른 파일이 있는지 HxD로 살펴본 결과 별다른 소득은 없었다.
APNG와 관련된 문제일까 싶어서 TweakPNG 툴을 통해 구조를 확인하려고 했다. 하지만 IDAT chunk에 오류가 있다는 창이 먼저 떴다. IDAT chunk는 "Image Data"의 약자로 실질적 이미지 데이터가 들어있는 부분이다. 하나의 이미지 내에서도 여러 개의 IDAT chunk를 가질 수 있는데 아마 특정 chunk에 잘못된 data가 들어있어서 이미지의 특정 부분을 우리가 못 보는 것 같다.
참고) TweakPNG 설치 링크: https://entropymine.com/jason/tweakpng/
TweakPNG로 먼저 보면 다른 부분은 전부 대문자 IDAT로 저장되어 있는데 한 부분만 소문자 idat로 저장되어있다. 이 부분을 HxD를 사용하여 대문자 IDAT로 수정해주면 정상적으로 이미지 데이터가 읽어져 잘린 부분 없이 전체적인 사진을 볼 수 있을 것 같다.
HxD를 사용하여 문제의 idat로 저장되어 있던 부분을 IDAT로 바꿨다.
복구한 파일을 다시 열면 정상적으로 이미지 데이터를 읽어올 수 있기 때문에 전체적인 사진이 보인다. 해당 플래그를 인증하면 문제가 풀린다.
[HackCTF-Forensic#9] 잔상 - 250 points (0) | 2022.01.16 |
---|---|
[HackCTF-Forensic#8] Terrorist - 200 points (0) | 2022.01.16 |
[HackCTF-Forensic#6] 나는 해귀다 - 150 points (0) | 2022.01.15 |
[HackCTF-Forensic#4] Secret Document - 150 points (0) | 2022.01.14 |
[HackCTF-Forensic#5] 세상에서 잊혀진 날 찾아줘! - 150 points (0) | 2021.04.06 |
댓글 영역