xcz.kr의 35번째 문제는 ZIP이다. 포렌식 문제고, 문제는 아래와 같다.
숨겨져 있는 파일을 찾으면 된다. 이 문제의 파일을 다운로드해서 열어봤다.
이름이 없는 파일과, flag.rar 파일이 있었다. flag.rar 파일을 열려고 했더니 암호를 입력해야 한다고 떴다.
일단 zip 파일 구조를 분석하기 위해 HxD를 사용했다. zip 파일의 구조는 이 블로그를 많이 참고했다.
위와 같이 zip 파일의 일반적인 구조는 크게 3개의 파일 구조(Local File Header, Central Directory, End of central directory record)로 되어 있다. 이때, 파일 하나 당 하나의 Local File Header, Central Directory는 반드시 가져야 한다. 이 문제에서 제공된 압축 파일 내부의 파일은 2개다. 따라서 2개의 Local File Header, 2개의 Central Directory, 1개의 End of central directory record를 가져야 정상적인 파일 구조라고 할 수 있다.
Local File Header Signature | 50 4B 03 04 (4bytes) |
Central Directory Signature | 50 4B 01 02 (4bytes) |
End of central directory record Signature | 50 4B 05 06 (4bytes) |
위의 signature 정보를 토대로 검색을 해서 파일 구조를 쉽게 확인할 수 있었다.
이름 없는 파일의 Central Directory 부분이 빠져 있는 것을 확인할 수 있었다. 따라서 문제에서 주어진 압축 파일은 손상된 압축 파일임을 알 수 있었고, 이름 없는 파일의 Central Directory 부분을 복구하면 된다.
위의 사진을 보면 알 수 있듯이, Local File Header와 Central Directory의 구조에서 겹치는 부분이 있다. 이를 토대로 봤을 때 이름 없는 파일의 Local File Header를 참고해 Central Directory 부분을 채워 주면 된다.
- Signature: 50 4B 03 04
- Version: 14 00
- Bit Flags: 00 00
- 압축 방식: 08 00
- 수정 시간: D2 BE
- 수정 날짜: 50 43
- CRC: EC BD 08 97
- 압축 크기: 71 05 00 00
- 원본 크기: 76 05 00 00
- 파일 이름 길이: 09 00
- 추가 필드 길이: 08 00
- 파일명: 00 00 00 00 00 00 00 00 00
위의 내용을 토대로 Central Directory에 들어갈 내용을 작성했다.
- Signature: 50 4B 01 02
- Version: 14 00
- need.ver: 14 00
- Bit Flags: 00 00
- 압축 방식: 08 00
- 수정 시간: D2 BE
- 수정 날짜: 50 43
- CRC: EC BD 08 97
- 압축 크기: 71 05 00 00
- 원본 크기: 76 05 00 00
- 파일 이름 길이: 09 00
- 추가 필드 길이: 08 00
- 파일 코멘트 길이: 00 00
- 디스크 번호 시작: 00 00
- 파일 속성: 01 00 20 00 00 00
- 로컬 헤더 offset: 00 00 00 00
- 파일명: 00 00 00 00 00 00 00 00 00
압축 파일을 복구하고, 이름 없는 파일을 살펴보기 위해 FTK Imager를 사용했다. 아마 이 이름 없는 파일은 Image 파일인 것으로 예상된다. 아래와 같이 이름 없는 파일로부터 pw를 얻을 수 있다.
얻은 pw를 flag.rar 파일의 비밀번호로 입력했다.
비밀번호를 입력하면 파일이 열리고, flag가 담긴 png 파일을 얻을 수 있다. 이를 인증하면 문제가 풀린다.
[xcz.kr #24] Memoryyyyy Dumpppppp - 200 points (0) | 2022.01.06 |
---|---|
[xcz.kr #27] XCZ Company Hacking Incident - 150 points (3) | 2022.01.06 |
[xcz.kr #22] Who's Notebook? - 100 points (0) | 2021.02.16 |
[xcz.kr #16] Mountains beyond mountains - 150 points (0) | 2021.02.16 |
[xcz.kr #36] File Deleted - 100 points (0) | 2021.02.16 |
댓글 영역