[羊城杯 2022]Unlimited Zip Works

下载附件后是个压缩包:

解压后又要解压,套娃压缩包:

看到攻略说多解压几层就可以看到有的压缩包有注释,但不知道为什么我这里看不到,所以实际上要提取注释中的内容,把注释中的内容提取后组成一个新的压缩包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}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值