1 분 소요

[HackCTF] 세상에서 잊혀진 날 찾아워! 풀이

Environments

Name Config
CPU Apple M1
Architecture ARM64
OS Microsoft Windows 11 on ARM
Tools - Mh-Nexus HxD Editor

Problem

URL: https://ctf.j0n9hyun.xyz/challenges#세상에서%20잊혀진%20날%20찾아줘!

목표: pdf.pdf 으로부터 `Flag 찾기

접근 방법: PDF 구조 분석

Solution

정상적인 pdf 파일 인 것은 해당 파일을 HxD로 열어봄으로서 확인.

우선 PDF 파일의 구조를 알아야 분석 가능. PDF 파일은 크게 4부분으로 이루어 짐

이름 설명
Header 파일의 정보를 담고 있음
Body obj~endobj 사이에 실질적 데이터가 들어있음
xref Table 복수의 Table로 이루어진 Body 상의 Object 위치나 유효성 정보 기록
Trailer xref Table의 위치나 Object 정보 수록

xref Table 에서 총 오브젝트 개수를 알 수 있음.

xref // xref 시작 지점
0 36 // 0번으로 시작해, 총 36개 obj
0000000000 65535 f // 위치 고유번호 표시여부(yes/no = n/f)
0000000017 00000 n
...

위 분석을 통해 표시가 되고 있는 obj에 한해 obj를 찾기 시작. 이 쯔음부터 pdf.pdf 파일 내 표시되던 것은 이미지 라고 판단하여 obj 중 이미지와 관련 된 것을 찾기 시작.

/Type/XObject/Subtype/Image/Width 620/Height 289/ColorSpace/DeviceRGB/BitsPerComponent 8/Filter/DCTDecode/Interpolate false/Length 13240

7번째 obj가 위와 같고 0x06BA~C를 통해 JPG 이미지 임을 확인.

xrerf
0 36 // 0번 부터 시작
0000000000 65535 f
0000000017 00000 n
0000000364 00000 n
0000000420 00000 n
0000000619 00000 n
0000001119 00000 n
0000001297 00000 n
0000001557 00000 f // jpg file
0000014977 00000 n
0000015180 00000 n

xref Table에서 7번째 (0번부터 시작 하므로 8번째 줄) 표시 여부를 f로 고쳐주면 flag 확인 가능