NOT4DOG
방명록 RSS 태그 글쓰기 관리자
 
[CTF] Dreamhack broken-png 문제 Write-up
CTF Write-up 2021-12-29 22:57:06

반응형

문제) 드림컴퍼니에서 디자이너로 일하는 드림이는 직장 동료에게 내일 사용해야 하는

          드림뱅크의 홍보 이미지를 메일을 통해 전달 받았습니다.

          하지만 이메일 전송 과정에서 문제가 발생해 이미지가 정상적으로 전달되지 않았습니다.

드림이: 전달해주신 홍보 이미지가 원래 정사각형으로 알고 있는데,
               반밖에 오지 않은 것 같아요! 다시 보내 주실 수 있나요?
드림뱅크 직원: 담당 직원이 어제 퇴사를 해서
                            지금 당장 이미지를 다시 전달 드리기 어렵습니다.

드림이: 네?

드림이를 위해 오늘 오후 6시까지 깨진 이미지를 복구해주세요!

 

image.png 파일을 준다.

FLAG 확인이 불가능한 이미지

이 문제는 보자마자 Signature Code 가 생각날수밖에 없는 문제다.

그래서 Hex Editor로 image.png의 Hex Code를 들여다보았다.

.PNG 파일 고유의 Signature Code에는 문제가 없다. (89 50 4E 47 0D 0A 1A 0A)

하지만 Signature Code가 아닌 IHDR 부분 이후에 이상한 점을 발견할 수 있었다.

IHDR 이란 Chunk (공통된 데이터를 가지고 있는 데이터들의 집합을 일컫는다)

                        중요 Chunk에는 IHDR, IDAT, PLTE, IEND Chunk가 있다.

image.png의 Hex Code

 

표시한 빨간색 부분이 이미지의 너비, 파란색 부분이 이미지의 높이를 저장하는데

문제에서는 분명 정사각형의 이미지 파일이라고 나와있다. 하지만 너비와 높이의 길이가 각각

01과 02로 직사각형 모양의 이미지 파일로 저장이 되어있었다.

 

그래서 수정을 통해 너비와 높이의 길이를 서로 같게 해주고 저장하였다.

(정사각형이므로 → 02, 02)

IHDR 너비, 길이 관련 Hex Code 수정

 

저장 후 같은 image.png 파일을 다시 열어보면 FLAG의 확인이 가능하다.

FLAG 획득

반응형