[CTF2019]zips

本篇将分享一道关于压缩包破解的 CTF 题目解题思路,题目涉及多层加密的 ZIP 文件,需要依次破解密码、绕过伪加密并进行掩码爆破,最终提取 Flag。

第一层:密码爆破

题目附件 [CTF2019]zips.zip 是一个加密压缩包。

首先,我们使用 John the Ripper 工具进行密码爆破。通过 zip2john 提取哈希值:

1
zip2john.exe C:\Users\lenovo\Desktop\zips.zip > hash.txt

生成 hash.txt

然后使用 john.exe 对哈希进行爆破:

1
john.exe hash.txt

爆破密码

成功得到密码 123456。使用该密码解压 zips.zip,得到 flag.txt 和一个新的压缩包 deepin.zip

解压文件

第二层:伪加密绕过

deepin.zip 同样是加密的。我们来分析一下它的文件结构。

伪加密是利用 ZIP 文件头中的一个标志位实现的。通用位标志(General purpose bit flag)的第 0 位为 1 时,表示文件已加密。

使用 010 Editor 打开 deepin.zip,可以看到文件头 50 4B 03 04 后的通用位标志为 09 00,其二进制的最低位为 1,表示文件被标记为加密。

分析 ZIP 文件结构

要绕过伪加密,只需将该标志位修改为 00 00,即关闭加密标志。

修改标志位

保存修改后,deepin.zip 就可以直接解压了,得到 flag.txtfinal.zip

第三层:ARCHPR 掩码爆破

final.zip 仍然是加密的。这次我们使用 ARCHPR 进行掩码爆破。

打开 ARCHPR,选择 final.zip,设置爆破类型为“掩码”,范围为所有数字,长度为 6。

ARCHPR 掩码爆破设置

开始爆破,成功得到密码 230719

提取最终 Flag

使用密码 230719 解压 final.zip,得到最终的 flag.txt

解压 final.zip

打开 flag.txt,即可看到最终的 Flag。

查看 Flag

最终 Flag