Wargame/Forensics

[Dreamhack] Forensics - Enc-JPG

1ullaby 2024. 3. 8. 23:13

▶ jpg 파일 변조

  플래그 {JPG_TXT_PNG}

 

 

문제 파일을 다운로드하면 아래와 같이 Enc, flag 파일이 있는 것을 확인할 수 있다.

각 파일을 HxD에서 확인해보았다.

Enc 파일의 경우 4D 5A (MZ) 로 시작하는 것을 확인할 수 있는데, 검색을 해보니 MZ는 .exe 실행파일에 사용되는 파일 형식이었다.

 

 

flag 파일은 jpg 확장자를 가지고 있지만 헤더 시그니처 값(FF D8 ~)이 보이지 않았다.

문제 설명처럼 이 jpg 파일이 생성 중에 변조된 것 같다.

 

 

먼저 Enc 파일의 확장자를 exe로 바꿔주고 실행해보았는데, 옆 flag 파일에 이미지가 생겼다.

 

이미지가 잘려서 보이므로 flag 파일을 HxD에서 다시 확인해보았다.

jpg 푸터 시그니처 (FF D9)를 검색해보니 두 개가 확인되었다.

 

 

첫번째 푸터 시그니처를 지우고 다시 저장해보니 플래그의 일부분을 확인할 수 있었다.

 

 

두 번째 푸터 시그니처를 확인해보니 옆에 Find the String "_ENc_ECrypt" 문자열이 있었다.

문제 설명에서 플래그 값이 DH{JPG_TXT_PNG} 라고 했으니 이것이 TXT 부분이라고 추측했다.

 

 

그 다음에 보이는 PNG 부분을 따로 추출하여 저장했는데, 빈 내용의 이미지 파일만 확인할 수 있었다.

 

PNG 파일의 구조를 확인하다가 IDAT 앞 4바이트가 이상한 것을 확인하였다.

문자열 _yo} 가 플래그 값의 일부처럼 보여서 PNG 부분의 FALG라고 추측하였다.

IDAT Chunk : PNG 이미지 데이터가 실질적으로 들어가는 부분이다.  이미지의 원본 픽셀 데이터가 필터링과 압축을 거쳐서 IDAT 청크에 저장된다.

 

JPG, TXT, PNG에서 얻은 플래그를 조합하여 제출하면 문제가 해결된다.