[羊城杯 2022]签个到
ZMJTPM33TL4TRMYRZD3JXAGOZVMJRLWEZMFGFAEIZV2GVMOMZZ3JTZ3RUR2U2===
实际上是ROT13之后的base32
ciphey一把梭
[羊城杯 2022]Unlimited Zip Works
附件打开是一个套了几百层的压缩包,多点几层可以看到有的压缩包的注释中是有内容的,所以这里实际上要提取注释中的内容。
这里借用其他师傅的脚本,把注释中的内容提取后组成一个新的压缩包。
import zipfile
name = 'file'
infolist = []
num = 1
newzip=b''
while True:
fz = zipfile.ZipFile(name + '.zip', 'r')
for i in fz.namelist():
if "zip" in i:
filename = i[0:5]
# print(filename)
fz.extractall(pwd=bytes(filename, 'utf-8'))
num += 1
name = filename
for j in fz.infolist():
infolist.append(j.comment)
if 'flag.txt' in str(j):
print('[+] 解压完成')
list2 = infolist[::-1]
for k in list2:
newzip += k
with open('./newfile.zip','wb') as f:
f.write(newzip)
print("[+] 成功生成新压缩包newfile.zip")
exit(0)
压缩包最后打开的flag.txt没什么用,我们需要的是newfile.zip
newfile.zip打开之后又是无数个txt文档
其他师傅写的WP上说是所有文件的特征都是error,所以要提取extra值(实际上我不懂)
from zipfile import ZipFile
data = []
with ZipFile('newfile.zip','r') as zf:
for i in zf.infolist():
data.append(i.extra)
with open('flag.zip','wb') as fz:
for i in data:
fz.write(i)
运行之后的flag.zip里开出一个archer.jpg
分析之后发现图片并没有什么用,反而是flag.zip文件末尾发现另一个隐藏的zip文件
正常的文件头应该是50 4B 03 04,这里是01 02
保存之后用7z打开会报错,但是用winrar能正常打开并解压
得到一个无后缀文件,随便用010或记事本或cat都能打开得到flag