문제를 한번 보겠습니다.
주어진 파일을 다운 받아서 열어 보겠습니다.
txt파일 3개가 있는데 flag.txt, hint1.txt, hint2.txt가 있습니다. 그런데, 3개의 파일 중 flag.txt만이 *이 있는것을 알 수 있습니다.
zip 파일에서 *은 암호가 걸려 있다는 뜻입니다. 근데 hint1과 2는 암호가 없으니까 한번 열어 보겠습니다.
해석을 하자면 패스워드가 존재한다고 생각하니?? 와 Brute-Force(무차별 대입 공격)은 하지말라는 것입니다.
결국엔 툴을 사용하지 않고 패스워드를 풀 수 있다는 것입니다.
자세한건 zip 구조 링크를 달아드릴테니 읽어보시길 바랍니다.
바로 설명을 하자면, zip구조에서는 암호가 걸려 있지 않아도 걸려있다고 할 수 있는 방식이 존재합니다.
그래서 위 사진처럼 flag.txt에 대한 Local File Header 부분만 추출해 왔습니다.
Local File Header는 시그니처가 50 4B 01 02로 시작하며 다음 파일의 Local File Header가 나오는 영역까지 표시를 할 수 있습니다. 간단하게 레이아웃을 보겠습니다.
빨간색 칸 안은 압축을 할 때 사용한 방법을 나타냅니다.
하나는 09 08, 하나는 00 00입니다.
쉽게 말해 "09 08은 이 파일에서는 암호화가 걸려 있는 것 처럼 하겠다" <<
"00 00은 암호가 걸려 있지 않다" << 로 이해를 하시면 됩니다.
그럼 문제에 따라 00 00으로 저 영역을 수정하겠습니다.
수정을 하고 저장을 하게 되면 제대로 압축이 풀리는 것을 확인할 수 있고, flag 값을 입력하시면 됩니다.
- zip구조 링크 -
https://lemonpoo22.tistory.com/13
'CTF > HackCTF' 카테고리의 다른 글
[Forensic] 나는 해귀다 (0) | 2022.03.29 |
---|---|
[Forensic] 세상에서 잊혀진 날 찾아줘 (0) | 2022.03.29 |
[Forensic] So easy? (0) | 2022.03.29 |
[Forensic] Question? (0) | 2022.03.29 |
[Forensic] Welcome_Forensics (0) | 2022.03.29 |