一 题目描述
二 解题步骤
2.1第一层压缩包
压缩包打开提示出错
010editor中观察文件格式,文件尾明显观察到是正常压缩包的逆序,考虑逆序读取生成一个新的zip
python代码
with open(r'C:\Users\PC\Desktop\CTF题目\a.zip','rb') as f1:
with open(r'C:\Users\PC\Desktop\CTF题目\b.zip','wb') as f2:
content = f1.read()[::-1]
f2.write(content)
2.2 第二层压缩包
得到一个
galf.zip
和扫吧.7z
galf.zip
解法和第一层压缩包相同,将上面代码文件名修改一下即可,会得到flag.txt
的加密压缩包扫吧.7z
是32张二维码图片,顺序扫描查看信息。贴上简单的python代码
扫描二维码
import cv2
from pyzbar import pyzbar
import os
#扫吧目录路径
path = 'C:\\Users\\PC\\Desktop\\CTF题目\\扫吧\\'
#更改工作目录到该目录下
os.chdir(path)
#存放所有二维码图片的列表
files = os.listdir(path)
#顺序存储文件
files.sort(key=lambda x:int(x.split('.')[0]))
for file in files:
#读取二维码文件
qrcode = cv2.imread(file)
#解析数据
data = pyzbar.decode(qrcode)
#提取二维码信息
text = data[0].data.decode('utf-8')
#每个二维码扫出来是一个字母,拼接所有字母
print(text,end='')
得到的字符串为
cXNuY3RmOnl5ZHM6NjE3MjU4ZWNkZg==
进行base64
解码
作为密码解压
galf.zip
得到flag.txt
得到qsnctf{N1VVNHRVB1MhN1AmMWopAK6r9K6nA4MhC42pB4FVBXYoCH2s}
再对{}中的内容base
解码即为最终flag
2.3提交flag
标签:zip,flag,CTF,Desktop,二维码,从尾,WP,压缩包 From: https://www.cnblogs.com/stickonit/p/16939549.html
qsnctf{d8ae7a46-d32b-51b7-b30f-8a54da694918}