题目描述
题目给了一个以四位数字做文件名的压缩文件
题目分析
发现题目给的压缩文件名,就是解压这个压缩文件的密码,既然是千层套路,类似的操作可能要进行一千次。
解题过程
下面就要写脚本进行解题,写了一个比较拙劣的脚本
import zipfile
import os
i=0
while 1:
try:
file=zipfile.ZipFile('F:\download/attachment (6)/'+str(i)+'/'+os.listdir('F:\download/attachment (6)/'+str(i)+'/')[0],'r')
i=i+1
file.extractall(path='F:\download/attachment (6)/'+str(i)+'/',pwd=os.listdir('F:\download/attachment (6)/'+str(i-1)+'/')[0][0:4].encode('utf-8'))
except:
print('循环了'+str(i)+'次')
break
然后在1001的文件夹里面发现了qr.txt
根据文件名和文件内容,是一个二维码啊,那我们再写个脚本画一下二维码。
from PIL import Image
from zlib import *
file=open('CTFtools\misc\qr.txt','r').read().split('\n')
#print(file)
i=0
pic=Image.new("RGB",(200,200))
for y in range(200):
for x in range(200):
if file[i]=='(0, 0, 0)':
color=(0,0,0)
pic.putpixel([x,y],color)
else:
color=(255,255,255)
pic.putpixel([x,y],color)
i=i+1
pic.show()
得到的二维码扫描就可以得到flag