DASCTF 2024暑期挑战赛-MISC-EZ_zip

2 篇文章 0 订阅
1 篇文章 0 订阅

右键解压缩发现压缩包损坏,直接丢到010里面,压缩包里面的文件名是320.zip,文件名长度是7,但是我们在模块的frFileNameLength发现值为3,所以要将文件头的frFileNameLength的值改为7,还要将目录区的frFileNameLength改为7

将以上两处的值该为7之后,我们就可以顺利的打开压缩包,解压出320.zip

再次解压320.zip,发现需要密码,简单尝试一下爆破,发现没有什么效果,这时我们可以看到注释处有提示just a byte,发现是一个嵌套加密的zip,并且密码为一个字节。

知道了压缩方法以及加密算法,直接上破解脚本,爆破可能要花费写时间

import pyzipper
import os
key = b''
for i in range(320,0,-1):
    zip_filename = str(i) + ".zip"
    zf = pyzipper.AESZipFile(zip_filename, 'r', compression=pyzipper.ZIP_LZMA, encryption=pyzipper.WZ_AES)
    for j in range(0,0xff+1):
        password = j.to_bytes(length=1, byteorder='big')
        zf.setpassword(password)
        try:
            zf.extractall()
            key += password
            zf.close()
            os.remove(str(i) + ".zip")
            break
        except:
            pass
print(key[::-1].hex())

爆破出来一个AES-ECB.txt,打开发现一个字符串,提示是key可能已经在之前出现过了,于是我们就用爆破出来的压缩包密码当作key

c64e5e2225444a9da66b0f28ad718f798cffa70a48124ec5873a610c5899bb11c64e5e2225444a9da66b0f28ad718f798cffa70a48124ec5873a610c5899bb11c64e5e2225444a9da66b0f28ad718f798cffa70a48124ec5873a610c5899bb11c64e5e2225444a9da66b0f28ad718f798cffa70a48124ec5873a610c5899bb11c64e5e2225444a9da66b0f28ad718f798cffa70a48124ec5873a610c5899bb11c64e5e2225444a9da66b0f28ad718f798cffa70a48124ec5873a610c5899bb11c64e5e2225444a9da66b0f28ad718f798cffa70a48124ec5873a610c5899bb11c64e5e2225444a9da66b0f28ad718f798cffa70a48124ec5873a610c5899bb11c64e5e2225444a9da66b0f28ad718f798cffa70a48124ec5873a610c5899bb11c64e5e2225444a9da66b0f28ad718f798cffa70a48124ec5873a610c5899bb11

爆破密码是循环的64位字符,将其当作key解密AES

c64e5e2225444a9da66b0f28ad718f798cffa70a48124ec5873a610c5899bb11

用加解密工具破解字符串

最终得到flag为DASCTF{514755c6-8280-463c-8378-a29702fc88df}

  • 8
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值