Forensic/wargame & ctf

[HackCTF] Magic PNG

ukkiyeon 2022. 1. 25. 18:29

zip 파일에서 PNG 파일을 얻을 수 있는데, 

 

 

 

지원되지 않는 파일 형식이라고 한다.

 

HxD로 열어보자.

 

 

 

PNG 헤더 시그니처와 푸터 시그니처를 확인해보았다.

푸터 시그니처는 49 45 4E 44 AE 42 60 82가 맞았지만, 헤더 시그니처가 좀 이상했다. 

 

* PNG 헤더 시그니처 : 89 50 4E 47 0D 0A 1A 0A

 

 

 

헤더 시그니처를 옳게 편집한 후 다시 파일을 열어본 결과, 아래와 같이 잘린 사진을 볼 수 있었다.

 

 

 

아무래도 PNG 구조에 문제가 더 있는 것 같다.

 

 

 

<PNG 파일 구조>

파일 시그니처와 다양한 청크들의 집합으로 이루어짐

* 청크 : 공통된 데이터를 가지고 있는 데이터들의 집합

 

PNG 파일의 필수 청크 : IHDR, IDAT, IEND

1) IHDR (Image Header) : 이미지의 기본 정보(width, height, bit depth, color type 등)를 담고 있는 청크 

 

2) IDAT (Image Data) : 이미지의 실질적인 데이터가 들어가는 청크

 

3) IEND (End of the Image) : 이미지의 끝을 표시하는 청크

 

 

 

청크들을 하나씩 찾아본 결과, 여러 IDAT 청크들 중에서 IDAT가 아닌 idat로 적혀있는 한 개의 청크를 찾을 수 있었다.

해당 부분을 IDAT로 수정한 후 다시 저장하였더니, 이미지가 깨지지 않았고, 

플래그를 얻을 수 있었다.

 

 

 

해결!

 

 

 

참고

https://eece-labs.tistory.com/7

https://velog.io/@nurungg/PNG-image-format