ㅇㅂㅇ

문제를 보니 파일에서 플래그를 찾으라고 한다. 힌트는 파일의 헤더를 고쳐야한다고 한다.

 

일단 Hxd로 열어보자.

 

Hxd editor

Header Signature를 보니 뭔지 잘 모르겠다.

 

file signature 모음은 (forensic-proof.com/archives/300) 여기서 확인해보자.

 

Footer Signature를 확인 해보자.

 

png Footer Signature

footer를 보니 png 파일의 footer signature 였다.

 

헤더를 수정하고 확장자를 바꾼 뒤에 실행해보자.

 

헤더 수정
??

아직 실행되지 않는다.

 

자세히보니 png 파일 헤더 청크에 문제가 있어 보인다.

 

png 파일 구조에 대해 알아보자.

 

File Signature (8 byte)
{
  Length (4 byte),
  Chunk Type (4 byte),
  Chunk Data (length byte),
  CRC (4byte)
}

이런 구조로 이루어져 있다.

 

하지만 pngcheck라는 좋은 툴이 존재한다.

 

우분투에서 한번 사용해보자.

 

문제 파일을 다운하자.
pngcheck도 다운하자.
bless hexEditor

파일 헤더는 고쳐주자.

 

이제 pngcheck를 써서 차례대로 고쳐보자.

 

IHDR Chunk

정상적인 IHDR Chunk로 바꿔주자.

 

그리고 한번 더 pngcheck를 해보자.

 

CRC Chunk
ㅇㅂㅇ

빨간 박스 부분도 맞게 고쳐주자.

 

한번더 pngcheck를 써보자.

 

too large

Chunk의 길이가 본 길이보다 길다고 한다. 줄여주자!

 

ㅇㅂㅇ

빨간 부분을 0으로 만들어 4byte를 줄여주자.

 

한번더 pngcheck를 써보자.

 

ㅇㅂㅇ

?DET는 IDAT Chunk인 듯 하다. 바꿔주자.

 

IDAT Chunk

한번더 pngcheck를 써보자.

 

OK

거의 다 된것 같다.

 

파일의 확장자를 png로 바꾸고 실행해보자.

 

FLAG

플래그가 나왔다.

 

플래그는 picoCTF{c0rrupt10n_1847995} 이다.

 

'PicoCTF > WriteUp' 카테고리의 다른 글

[vault-door-3] - 200p  (0) 2020.12.01
[picobrowser] - 200p  (0) 2020.12.01
[plumbing] - 200p  (0) 2020.12.01
[Based] - 200p  (0) 2020.12.01
[So Meta] - 150p  (0) 2020.12.01

+ Recent posts