SuNiNaTaS - Forensics 28번 문제 풀이

2020. 10. 19. 17:38CTF/SuNiNaTaS

[그림1 - 문제]

문제를 읽어보니 "파일에 암호가 걸려있나..?"라는 생각이 들었고

 

[그림2 - So_Simple.zip]

일단 파일을 다운로드 했다.

 

[그림3 - So_Simple.zip 압축 해제]

다운 받은 zip파일 압축을 해제하려는데 암호가 걸려있었다.

 

[그림4 - HxD]

그래서 HxD로 zip파일의 구조를 분석했더니 아래와 같았다. 

 Am_I_key.zip Local File Header, Am_I_key2.txt Local File Header, Am_I_key.txt Local File Header

Am_I_key.zip Central Directory, Am_I_key2.txt Central Directory, Am_I_key3.txt Central Directory

 End of Central Directory Record

그리고 암호화와 관련된 필드는 flag이므로 flag 부분을 찾아서 빨간 네모칸으로 표시했다.

 

[그림5 - flag 필드]

그림4에서 flag 2byte 리틀엔디안 방식으로 읽으면 '08 09'이고,

비트로 나타내면 '00001000 0001001'이 된다.

여기서 bit 00부분이 1이므로 이 파일이 암호화 되어 있음을 알 수 있다.

그래서 bit 00부분을 0으로 바꿔주면 flag값은 08 08이 되고,

모든 flag 2byte를 08 08로 바꿔주면 압축 해제가 될 것이다.

 

[그림6 - So_Simple.zip 압축 해제 완료]

정상적으로 압축 해제가 됐다.

 

[그림7 - Am_I_key2.txt, Am_I_key3.txt]

So_Simple 폴더에서 Am_I_key2.txt, Am_I_key3.txt 파일을 확인한 결과 의미없는 문자열만 있었다.

 

[그림8 - Am_I_key.zip]

그래서 남아있던 Am_I_key.zip 파일 압축을 해제했다.

 

[그림9 - There_is_key.txt]

Am_I_key 폴더에 There_is_key.txt 파일을 열었더니 key 값이 들어있어서

 

[그림10 - 오답]

바로 인증했지만 오답이었다.

 

[그림11 - Base64 Decoder]

"그럼 key 값이 디코딩 된건가?"라는 생각이 들어서

써니나타스에 있던 Base64 Decoder를 이용해서 문자열을 디코딩 했다.

 

[그림12 - 정답]

디코딩된 값으로 인증했더니 정답이었다 ㅎㅎ

인증키 : ta5ty_H4z3lnut_coffee