반응형

이번 문제는 SuNiNaTas의 28번 문제를 그대로 가져온 듯 하다.

문제를 풀어보자.



제공해준 zip 파일을 다운받아 열면 flag.txt 파일이 존재하는데 해당 파일을 읽으려하면 암호를 입력하라고 한다.



그래서 fcrackzip을 이용하여 해당 zip 파일의 암호를 해독해보려 했는데 flag.txt가 암호화가 되어있지 않다고 뜬다.


그래서 ZIP 파일의 파일헤더에 대해 찾아보았다. 

- 참고 : https://users.cs.jmu.edu/buchhofp/forensics/formats/pkzip.html



파일 헤더를 보면 0x8 0x9 부분에 Flags 헤더가 존재함을 볼 수 있다.

이 헤더가 의미하는 바는 아래와 같다. 


Flags     General purpose bit flag:

Bit 00: encrypted file

Bit 01: compression option 

Bit 02: compression option 

Bit 03: data descriptor

Bit 04: enhanced deflation

Bit 05: compressed patched data

Bit 06: strong encryption

Bit 07-10: unused

Bit 11: language encoding

Bit 12: reserved

Bit 13: mask header values

Bit 14-15: reserved


그렇다면 문제에서 제공한 zip 파일에서 flag.txt는 어떤 형식으로 되어있는지 보자.



flag.txt의 0x8 0x9에는 각각 09 08이 들어있음을 볼 수 있다.

이는 00001001 00001000으로 리틀엔디안 형식으로 보면 Bit 00에 해당하는 값이 1로 세팅되어 있음을 볼 수 있다.


이를 0으로 세팅해주기 위해 08 08로 변경해준 뒤 저장해준다.


그리고 난 뒤 다시 해당 zip 파일을 열어보면 flag.txt의 잠금이 풀려 Flag를 얻을 수 있다.




반응형

'Solve Problem > HackCTF' 카테고리의 다른 글

[HackCTF] LOL  (2) 2019.11.20
[HackCTF] No Password  (0) 2018.12.30
[HackCTF] 가위바위보  (0) 2018.12.28
[HackCTF] Secure Login  (0) 2018.12.02
블로그 이미지

rootable

,