-
3팀_김기연 write-ups (HackCTF_Magic PNG)2021/Write-Ups 2022. 1. 25. 23:08
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로 수정한 후 다시 저장하였더니, 이미지가 깨지지 않았고,
플래그를 얻을 수 있었다.
해결!
참고
'2021 > Write-Ups' 카테고리의 다른 글
2팀_장지은_Write_Ups (HackCTF_잔상) (0) 2022.01.25 4팀_김세연 write-ups (ctf-d_저는 이 파일이 내 친구와…) (0) 2022.01.25 3팀_김기연 write-ups (HackCTF_Terrorist) (0) 2022.01.25 2팀_장지은_Write_Ups (HackCTF_Terrorist) (0) 2022.01.25 4팀 임예은 Write-Ups(제 친구의 개가 바다에서..) (0) 2022.01.25