Notice
Recent Posts
Recent Comments
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | ||||||
| 2 | 3 | 4 | 5 | 6 | 7 | 8 |
| 9 | 10 | 11 | 12 | 13 | 14 | 15 |
| 16 | 17 | 18 | 19 | 20 | 21 | 22 |
| 23 | 24 | 25 | 26 | 27 | 28 | 29 |
| 30 |
Tags
- Docker
- binwalk
- vulnhub
- beebox
- CTF-d
- MFT
- Volatility
- base64
- lord of sql injection
- diva
- Suninatas
- XSS
- 안드로이드
- igoat
- otter
- Strings
- InsecureBank
- 2018
- 인시큐어뱅크
- logstash
- frida
- Openstack
- ctf
- Reflected XSS
- kibana
- dreamhack
- foremost
- SQL Injection
- ESXi
- elasticsearch
Archives
- Today
- Total
Information Security
structure-based carving 문제 본문

HxD 프로그램을 이용하여 문제 파일을 열어보면 문제에서 ZIP파일이라는 것을 알 수 있다. ZIP 파일의 헤더인 50 4B 03 04 를 찾아보면 1009개의 검색되는 것을 알 수 있다.

ZIP Local File Header 구조 정리표
| Signature (시그니처) | 항상 \x50\x4b\x03\x04 값이다. |
| Version needed to extract (압축 해제 필요 버전) | 이 파일을 압축 해제하기 위해 필요한 최소 PKZip 버전 |
| Flags (일반 목적 비트 플래그) | Bit 00: 파일 암호화Bit 01: 압축 옵션 Bit 02: 압축 옵션 Bit 03: 데이터 설명자 존재 여부(Data Descriptor 사용) Bit 04: 향상된 디플레이트 Bit 05: 패치된 데이터 Bit 06: 강력한 암호화Bit Bit 07–10: 사용되지 않음 Bit 11: UTF-8 인코딩 사용 Bit 12: 예약됨 Bit 13: 마스크 헤더 값 Bit 14–15: 예약됨 |
| Compression method (압축 방식) | 00: 무압축 01: shrunk 02~05: reduced(압축 계수 1~4) 06: imploded 07: 예약됨 08: deflated(일반적으로 사용) 09: enhanced deflated 10: PKWare DCL imploded 11: 예약됨 12: BZIP2 13: 예약됨 14: LZMA 15–17: 예약됨 18: IBM TERSE 19: IBM LZ77 z 98: PPMd vI r1 |
| File modification time (파일 수정 시간) | MS-DOS 시간 형식비트 00–04: 초 ÷ 2비트 05–10: 분비트 11–15: 시 |
| File modification date (파일 수정 날짜) | MS-DOS 날짜 형식 비트00–04: 일 비트05–08: 월 비트 09–15: 1980년 기준 경과 연도 |
| CRC-32 checksum (체크섬) | CRC-32 알고리즘으로 계산된 값 ‘magic number’ 0xdebb20e3 (little endian) 사용 |
| Compressed size (압축 크기) | 압축된 데이터 크기 ZIP64일 경우: 0xffffffff이며 실제 크기는 Extra field에 저장 |
| Uncompressed size (원본 크기) | 압축되지 않은 실제 데이터 크기 ZIP64일 경우: 0xffffffff, 실제 값은 Extra field에 저장 |
| File name length (파일 이름 길이) | 아래 File name 필드의 길이 |
| Extra field length (추가 필드 길이) | Extra field의 길이 |
| File name (파일 이름) | 파일 이름(상대 경로 포함 가능) 경로 구분자는 / 사용 |
| Extra field (추가 필드) | 추가 정보 저장용 필드 여러 개의 (2바이트 ID + 2바이트 데이터 길이 + 실제 데이터) 구조로 구성 |
시그니처는 50 4B 03 04, Compression method는 08 아니면 09, Version은 14, Flag는 00일것이다.
50 4B 03 04 14 00 08은 39개의 결과가 나오고 50 4B 03 04 14 00 09는 1개의 결과만 보여주는 것을 알 수 있다.

해당 부분을 복사하여 압축파일로 저장했다.

압축파일을 풀기를 하려면 비밀번호가 필요한 것을 알 수 있다.

자세히 보면 HxD에서 비밀번호 a1b2c3d4e5f6 라는 것을 알 수 있다.

압축을 풀면 아래와 같이 Flag 값을 얻을 수 있다.

'DreamHack > WarGame' 카테고리의 다른 글
| study_checker 문제 (0) | 2025.11.14 |
|---|---|
| chrome_artifacts 문제 (0) | 2025.11.14 |
| nikonikoni 문제 (0) | 2025.11.10 |
| boot_time 문제 (0) | 2025.11.08 |
| Autoruns 문제 (0) | 2025.10.26 |