file로 확인해보니 Zip파일인 걸 확인하고 압축을 풀어보려 했더니 아래와 같이 암호가 걸려 있었습니다.
혹시나 해서 이것저것 입력해봤지만, 잠깐의 게싱으로는 풀 수 없었습니다.
그러다가 혹시 암호화가 안 돼 있는데, 암호화 됐다고 하는 페이크인가 생각해봤는데
이것도 아니었습니다.
마지막으로 혹시나 해서 파일 이름으로 비밀번호를 입력해봤더니 풀렸습니다.
세상에...
코드 코드.....
import tarfile import zipfile import os def decompress_tar(filename, path): with tarfile.TarFile(filename) as tar_decompress: tar_decompress.extractall(path) def decompress_zip(filename, password, path): print("FileName : ", filename) print("Password : ", password) with zipfile.ZipFile(filename) as zf: compressed_name = zf.namelist()[0] zf.extractall(path=path, pwd=password) return compressed_name def file_rename(filename): reName = filename + ".zip" os.rename(filename, reName) return reName Done = False FileName = "RWtm7A5f" # it is also password while not Done: Password = FileName.encode() #FileName = file_rename(FileName) FileName = decompress_zip(FileName, Password, './') print("FileName : %s" % FileName) decompress_tar(FileName, './flag')
위와 같이 문제 파일을 풀어보면, flag 파일이 하나 튀어나오는데, 그 파일은 TAR로 되어 있어서 TAR로 풀어보았습니다.
그런데....
위와 같은 폴더로 가득한 압축파일인 것을 확인할 수 있었습니다.
여기서 답이 없다고 생각하고 다른 문제를 보고 있었는데, 팀원의 도움으로 풀 수 있었습니다.
125 폴더 이후에는 아무런 파일이 없고, 그 이전의 파일에는 숫자로 이루어진 데이터가 없는 파일들이 있었습니다.
위와 같이 하나씩 나타나 있는데, 저 폴더에 표시된 예시를 들어보면 chr(101) 을 한 값을 9번째에 넣어라, 라는 의미가 될 수 있습니다.
때문에 저기 표시된 폴더의 값을 chr로 바꿔주고 그걸 원하는 번째의 string으로 만들어주면 FLAG가 나타나게 됩니다.
FLAG{m4tr3shk4_a5c11}
'CTF > 2020_SarCTF' 카테고리의 다른 글
SarCTF2020 - Crossw0rd (Rev) (0) | 2020.02.18 |
---|---|
SarCTF2020 - Deep Dive (Misc - Programming) (0) | 2020.02.17 |
SarCTF2020 - Car for Sherlok (Web - Race Condition) (0) | 2020.02.17 |
SarCTF2020 - Some bot (Web - Command Injection) (0) | 2020.02.17 |