CHALLENGE/Dreamhack

[misc] broken-png

MUSH 2021. 10. 9. 22:12

문제

- 깨진 이미지를 복구하여 FLAG 값을 찾아내는 문제이다.

복구가 필요한 깨진 이미지

핵심 - PNG 구조에 대한 문제

101editor 화면

이미지파일 관련 문제는 헥스값을 살펴보면 알 수 있으며, 모든 PNG 파일에는 IHDR, IDAT, IEND 청크가 들어있다.

 

IHDR 청크 : "Image Header"의 약자로 PNG 파일의 기본정보를 담고있는 부분
- 가로, 세로, 비트 깊이, 색 타입, 압축 메소드, 필터링 메소드에 대한 정보
IDAT 청크 :  "Image Data"의 약자로 실질적 이미지 데이터가 들어가는 부분
IEND 청크 :  이미지의 맨 뒤에 위치하는 청크로, 이미지 파일의 끝을 표시하는 청크, 데이터가 없기때문에 길이는 0

 

따라서 IHDR 청크 뒤에 가로, 세로의 값을 수정하여 보이지않은 이미지의 나머지 부분의 FLAG를 확인 할 수 있다.

Reference

- png 구조

https://ryanking13.github.io/2018/03/24/png-structure.html

https://lucvs.xyz/m/94

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

- Tools

https://mh-nexus.de/en/hxd/

https://www.sweetscape.com/010editor/