[그림 1] 문제


문제를 요약하면 corrupt.png라는 파일이 전송 도중 잘못되었다고 합니다. 이것을 고쳐주실 수 있는지에 대한 답을 요구하고 있습니다.

그렇다면 우리는 여기서 corrupt.png라는 파일이 어떻게 잘못되었는지 알아볼 필요가 있습니다.

혹시 IDAT 부분이 잘못되었는지, 헤더가 잘못되었는지 말이지요.


먼저 파일을 열어보려고 하는데 png 파일임에도 불구하고 이미지로 열리지 않는 것을 볼 수 있습니다.

이미지가 열리지 않는다는 것은, 윈도우 상에서 File Signature와 확장자가 맞지 않을 때 발생합니다.

파일 시그니처 참고 URL : http://forensic-proof.com/archives/300

먼저 헤더 부분을 비교해봅시다.


[그림 2] corrupt.png 헤더 부분


corrupt.png의 헤더 부분을 보면 16Byte 코드로 90 50 4E 47 0E 1A 0A 1B을 보면 마치 PNG파일 같이 보입니다.

원래 PNG 시그니처는 이렇습니다. ==> 89 50 4E 47 0D 0A 1A 0A

비교를 해보니 확실히 다르다는 걸 알 수 있습니다.


불량 : 90 50 4E 47 0E 1A 0A 1B

원래 : 89 50 4E 47 0D 0A 1A 0A


이제 헤더 부분을 바꿔주면 [그림 3]과 같이 나오게 됩니다.


[그림 3] 문제 해결


'CTF > 2016_IceCTF' 카테고리의 다른 글

2016_IceCTF_Stage03_Matrix(85pt)  (0) 2016.09.07
2016_IceCTF_Stage02_Kitty(70pt)  (0) 2016.09.04
2016_IceCTF_Stage03_Audio(50pt)  (0) 2016.09.04
2016_IceCTF_Stage02_Miners(65pt)  (0) 2016.09.04
2016_IceCTF_Stage02_Demo(55pt)  (0) 2016.09.01
2016_IceCTF_Stage02_RSA(60pt)  (0) 2016.09.01
2016_IceCTF_Stage02_RSA?(50pt)  (0) 2016.08.26
2016_IceCTF_Stage02_Flag Storage(50pt)  (0) 2016.08.26

+ Recent posts