青少年CTF-从尾看到头[WP]

一 题目描述

 

 

二 解题步骤

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

 

qsnctf{d8ae7a46-d32b-51b7-b30f-8a54da694918}

posted @ 2022-11-30 19:42  OrangeCatCat  阅读(265)  评论(0)    收藏  举报