일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- slack space
- 실기
- 생활코딩 html
- Multimeida
- html
- 포렌식
- 디지털포렌식
- 24시간의 전사
- Window process
- blkls
- 정보처리기사 필기 합격
- 는 하지마...
- memory
- N0Named
- 윈도우 프로세스
- 네트워크관리사2급
- network
- ftz
- 2022시작
- 윈도우 프로세스 종류
- vinetto
- 네트워크 보안
- pythonchallenge
- disk
- 생활코딩
- Multimedia
- CTF-D
- ZIP 파일구조
- 슬퍼유
- 디지털포렌식 with CTF
- Today
- Total
ssoL2 TISTORY
[CTF-D/Disk] 누군가 부정행위를 했다는… 본문
문제 : ZIP 파일이 망가졌는데 무슨일인지 알아봐줘!
일단 ZIP 파일을 압축해제 시도해보니 "압축 풀기가 불가능한 압축방식"이라고 나와있다.
따라서, ZIP 파일 구조에 문제가 발생함을 예측할 수 있다.
Hex Editor인 HxD로 구조를 파악해본 결과, 총 13개의 Central Directory records가 존재하였다.
[50 4b 03 04]는 13개, [50 4b 01 02]도 13개, [50 4b 05 06]는 1개로 개수는 정상이었다.
뭐가 잘못되었는지 zip 파일의 읽는 순서로 따라가보았다.
먼저, End of Central Directory [50 4b 05 06]에서 Central Directory records 시작 offset을 찾아 올라갔다.
0x000015F2는 첫 번째 Central Directory records [50 4B 01 02] 부분이다.
그런데, 50 4b 01 02 다음에 [2D 0C 9A ...] 등 값이 굉장히 이상하다.
Central Directory records 구조에 따르면 압축 Version, 압축해제 Version 등의 의미를 지니는
Hex 값이 와야하는데, 굉장히 수상한 수가 등장한다.
Hex값이 이상하다는 강력한 증거는 해당 Cnetral Directory와
짝에 맞는 Local Header에서의 압축 Version이 다르다는 것뿐만 아니라
이후의 겹치는 정보들이 다르다. (원래는 같아야 한다.)
따라서, Cerntal Directory records [50 4b 01 02]에 뭔가 이상함을 느꼈고,
그러던 와중 ascii text에서 "galf"를 발견하였다. 이는 "flag"를 반대로 적어놓은 문자열이다.
따라서 모든 Central Directory records를 살펴본 결과 4 byte의 문자열만 가져오다 보면 flag를 확인할 수 있다.
위 4byte 문자열을 거꾸로 뒤집어서 합치면 flag를 구할 수 있다.
끝
🚫 flag는 🚫
flag{th3_vi11i4n_w3_n33d_#freeleffen}
'challenge > forensic' 카테고리의 다른 글
[CTF-D/Disk] Find Key(slack) (0) | 2021.05.22 |
---|---|
[CTF-D/Disk] X 회사의 재정 정보를 훔치기… (0) | 2021.05.22 |
[CTF-D/Disk] 조개를 찾아 열고, 진주를 찾으십시오. (0) | 2021.05.21 |
[CTF-D/Disk] fore1-hit-the-core (0) | 2021.05.21 |
[CTF-D/Disk] 저희는 디스크 이미지를 찾았습니다. (0) | 2021.05.21 |