관리 메뉴

CHIqueen

TJCTF 2020 Zipped Up 본문

프로그래밍/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}

Comments