下载附件后是个压缩包:
解压后又要解压,套娃压缩包:
看到攻略说多解压几层就可以看到有的压缩包有注释,但不知道为什么我这里看不到,所以实际上要提取注释中的内容,把注释中的内容提取后组成一个新的压缩包newfile.zip
删了别的数字的.zip文件,在MISC附件目录下放一个misc0.py脚本:
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)
运行misc0.py:
压缩包最后打开的是flag.txt,查看文本内容:
没什么用,不过要看的是newfile.zip里面的注释:
解压newfile.zip文件可以看到里面是2550个txt文件
教程说所有txt文件的特征都是error,所以要提取extra值,下面用extra.py脚本,注意,这个脚本是针对newfile.zip的,不能删了newfile.zip这么快
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文件:
用010editor分析了一下archer.jpg没发现什么附加文件,反而是用010editor打开flag.zip发现末尾可以看到有个隐藏的zip文件
正常的zip文件是50 4B 03 04,需要用到解压缩软件进行修复
(注意:这里用的bandizip是破解版才有的修复压缩包功能)
修复之后发现文件夹中多了个flag.repair.zip文件:
发现多了个f文件:
解压之后以记事本的方式打开f文件:
改成NSSCTF{}的格式
NSSCTF{I_am_the_DEFLATE_of_my_Zipfile}