[CTF2019]zips
本篇将分享一道关于压缩包破解的 CTF 题目解题思路,题目涉及多层加密的 ZIP 文件,需要依次破解密码、绕过伪加密并进行掩码爆破,最终提取 Flag。
第一层:密码爆破
题目附件 [CTF2019]zips.zip 是一个加密压缩包。
首先,我们使用 John the Ripper 工具进行密码爆破。通过 zip2john 提取哈希值:
1 | |

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

成功得到密码 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,表示文件被标记为加密。

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

保存修改后,deepin.zip 就可以直接解压了,得到 flag.txt 和 final.zip。
第三层:ARCHPR 掩码爆破
final.zip 仍然是加密的。这次我们使用 ARCHPR 进行掩码爆破。
打开 ARCHPR,选择 final.zip,设置爆破类型为“掩码”,范围为所有数字,长度为 6。

开始爆破,成功得到密码 230719。
提取最终 Flag
使用密码 230719 解压 final.zip,得到最终的 flag.txt。

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

