본문 바로가기

Forensic/wargame & ctf

[HackCTF] Magic PNG

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

'Forensic > wargame & ctf' 카테고리의 다른 글

[ctf-d] 오른쪽 위의 표지판을 읽을 수...  (0) 2022.02.13
[ctf-d] 이 그림에는 뭔가 좀 수상한...  (0) 2022.02.08
[HackCTF] Terrorist  (0) 2022.01.25
[HackCTF] 나는 해귀다  (0) 2022.01.15
[HackCTF] 잔상  (0) 2022.01.06