-
[suninatas] 28번2022/Write-Ups 2022. 5. 17. 13:52
3팀 김주미
문제 파일에서는 암호가 없을지도 모른다는 암시를 하고 있는데
파일을 다운로드 받아보면 모든 파일에 암호가 걸려있다...
So_Simple.zip 파일에는 암호가 없지만 내부 파일들에 암호가 걸려있어서 압축이 풀리지 않는 것 같다
혹시나 속성값을 살펴보았지만 이상한 점은 발견하지 못했다
헥스 에디터를 이용해 파일 시그니처를 살펴보았지만 50 4B 03 04 zip 파일 확장자가 맞다
찾아보니 zip 파일 확장자에는 암호화의 여부를 결정하는 바이트가 따로 존재한다고 한다.
https://hooneee.tistory.com/397
압축파일은
압축파일에 대한 기본 정보들이 포함되는 Local File Header,
Local File Header의 확장된 뷰를 포함하는 Central Directory,
아카이브의 종료를 작성하는 End of contral directory record로 이루어져 있다.
그 중 Local File Header와 Central Directory 둘은 암호화 여부를 결정하는 바이트 식별자를 가지고 있다.
그러니 이 둘의 암호화 여부 바이트와 속파일 3개의 암호화 여부 바이트를 변경하면 될 거라고 예측했다.
00001001 00001000 (09 08) 으로 암호화된 파일 여부를 결정하는 0번째 비트가 TRUE인 상태에서
00001000 00001000 (08 08) 해당 비트를 FALSE로 변경해주었다.
모든 플래그에 대해 값을 변경해준다. 파일 시그니처(PK)의 위치로 기준을 잡으면 플래그의 위치를 쉽게 알 수 있다.
노란색으로 표시한 부분은 파일 시그니처,
분홍색으로 표시한 부분은 플래그이다.
다만 예외로 마지막에 있는 PK는 directory record(암호화 여부 플래그가 없다.)의 파일 시그니처라고 생각해 제외하였다.
압축이 풀렸다.
두 개의 메모장에는 Dummy만 반복되어 있지만
압축되어 있던 파일에서는 키를 얻을 수 있었다.
dGE1dHlfSDR6M2xudXRfY29mZmVl
생김새가 base64로 인코딩 한 것 같아서 suninatas 사이트에서 지원해주는 base64 디코더에 넣어보았더니 다음과 같이 키가 나왔다.
해결!
key :ta5ty_H4z3lnut_coffee
'2022 > Write-Ups' 카테고리의 다른 글
[ctf-d] basics (0) 2022.05.17 [ctf-d] Find Key(butterfly) (0) 2022.05.17 [ctf-d] Find Key(Hash) (0) 2022.05.17 [ctf-d] 이벤트 예약 웹 사이트를 운영하고...#A#B#C (0) 2022.05.17 [ctf-d] 천 마디 말보다 사진 한 장... (0) 2022.05.17