CTF/해외CTF

SEKAI CTF 2022 Write-up

Ron Weasley 2022. 10. 5. 20:27

이번에 롸업을 쓸 CTF는 SEKAI CTF 2022입니다.

 

[Broken Converter]

문제를 해석 하자면, 미쿠는 마침내 과제를 마쳤고 제출할 준비가 되었지만, 어떤 이유로 학교는 모든 과제를 .xps 파일로 제출하도록 요구한다. 미쿠는 온라인에서 변환기를 찾았고 변환된 파일을 제출에 사용했다. 파일이 처음에는 좋아 보였는데, 변환기에 뭔가 고장난 것 같아요. 무엇이 문제인지 그녀가 알아내는 것을 도와줄 수 있나요? 인데 결국은 xps 파일을 가지고 문제를 해결하라는 것이다.

 

xps 파일을 다운로드 받고 hxd로 열어보면 zip형식으로 되어 있는것을 확인할 수 있었다.

zip 형식으로 바꿔주면 파일들을 볼 수 있다.

파일들을 하나씩 다 보다보면 Resources 경로에 odttf 파일을 볼 수 있다.

odttf 파일이 뭔지 몰라서 구글에 검색을 해보니까 위키에서는 ODTTF 확장자를 가진 파일은 MS사의 XPS(XML Paper Specification) 및 Office Open XML 형식에 사용되는 포함된 글꼴 파일 형식이라고 적혀있다. 즉, 원본 문서에 사용된 글꼴을 기반으로 하는 난독화 된 하위 집합 글꼴을 나타내며, 글꼴 파일의 처음 32바이트는 GUID(글꼴 파일 이름)을 사용해서 XOR에 의해 난독화된다고 적혀있다.

 

복호화을 해주는 사이트를 찾다가 깃헙에서 odttf 파일을 ttf파일로 변환해주는 사이트를 발견하여 ttf 파일을 추출했다.

링크 : https://somanchiu.github.io/odttf2ttf/js/demo

 

복호화를 하면 ttf 파일이 추출되는데 실행을 시켜보면 깨진 글꼴들을 볼 수 있다.

깨진 ttf 파일을 복호화 시켜주는 사이트를 찾아서 넣어보니 플래그 값을 구할 수 있었다.

링크 : https://fontdrop.info/

FLAG : SEKAI{sCR4MBLeD_a5ci1-FONT+GlYPHZ,W3|!.d0n&}

 

[flag mono]

1번과 이어지는 문제이다.

 

해석을 해보면, 글꼴에는 다양한 스타일로 구성이 되어있다고 하는데...폰트를 열어보기 위해서 FontForge라는 프로그램을 사용하였다.

 

이 프로그램을 사용함에 있어 엄청 힘들었다. 왜냐면 영어도 안되고, 한글도 안되고 ㅋㅋㅋㅋ 글자가 많이 깨졌기 때문이다..

폰트를 열어서 [요소] - [폰트 정보] 를 들어가게 되면 Lookups를 클릭한 하면 폰트 스타일을 볼 수 있다.

지금은 한글이 깨져있지만, 우측에 메타데이터 편집을 누르게 되면 알아볼 수 있게 바뀐다.

이 점을 참고해서 보면, 스타일이 4개가 들어있음을 확인할 수 있었다.

결국은 이 4개의 폰트를 다 뜯어봐야 하는데, 진짜 한글이 깨지니까 찾아보기 너무 힘들었습니다.

이것을 열어보면, 다음과 같은 메타데이터가 나온다.

읽어보면, 뭔가 조회하라는 것인데...아까 처음에 봤던 사이트를 가보면, FontDrop이라는 사이트가 있다.

아까 파일을 던졌을 때, 사이트를 자세히 보면 기능들이 다양하게 있다.

그리고 딱 파일을 던졌을 때, You see하고 Q^<U가 보인다.

그리고 아까 FontForge에서 봤다시피 4개의 ss01, ss02, ss03, ss04가 있었다는 것을 확인할 수 있었다.

그래서 밑에 Glyphs , or, text 기능을 다 사용해본 결과 답을 얻을 수 있었다.

Type Yourself에 저 문자열을 넣고 ss01, ss02, ss03, ss04 다 열어보면 된다.

ss01만 열린것이 보이니까 다 하나씩 열어보면 충분히 답을 구할 수 있다.

FLAG : SEKAI{OpenTypeMagicGSUBIsTuringComplete}

 

진짜 태어나서 이런 포렌식은 처음 해봅니다..