本文主要是介绍buuctf[MRCTF2020]千层套路,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
buuctf[MRCTF2020]千层套路
- 题目描述
- 题目分析
- 解题过程
题目描述
题目给了一个以四位数字做文件名的压缩文件
题目分析
发现题目给的压缩文件名,就是解压这个压缩文件的密码,既然是千层套路,类似的操作可能要进行一千次。
解题过程
下面就要写脚本进行解题,写了一个比较拙劣的脚本
import zipfile
import os
i=0while 1:try:file=zipfile.ZipFile('F:\download/attachment (6)/'+str(i)+'/'+os.listdir('F:\download/attachment (6)/'+str(i)+'/')[0],'r')i=i+1file.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
这篇关于buuctf[MRCTF2020]千层套路的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!