프로그래밍/Python
TJCTF 2020 Zipped Up
CHIqueen
2020. 5. 27. 14:44
재미있는 문제
import shutil
import os
xflag = "tjctf{n0t_th3_fl4g}\n"
open("0.txt","w").write(xflag)
cwd = os.getcwd()
j=0
while (flag:=open(str(j)+".txt").read()) == xflag:
j+=1
for i in os.listdir():
if i.endswith("kz3"):
os.rename(i,str(j)+".zip")
i=str(j)+".zip"
if i.startswith(str(j)):
shutil.unpack_archive(i)
break
for k in os.listdir(cwd+"\\"+str(j)):
shutil.move(cwd+"\\"+str(j)+"\\"+k,cwd+"\\"+k)
shutil.rmtree(str(j))
print(flag)
이 문제는 압축파일을 끝까지 다 풀었다고해서 풀수 있는게 아니다.
끝이 1100인가 그랬는데 마지막 txt파일을 봐도 flag는 아니다.
결국 중간에 flag가 등장한다는 뜻으로 파일을 읽어서 확인해야 한다.
비번도 안걸려 있고 tar.bz2, tar.gz, zip파일들로만 이루어져 있어서 shutil.unpack_archive()를 사용했다.
그리고 한동안 python 3.7.3을 사용해왔는데 3.8.2로 업그레이드 하면서 새로생긴 :=(바다코끼리 연산자)도 새롭게 사용해 보았다.
tjctf{p3sky_z1p_f1L35}