压缩包处理在CTF中也是常见的题型,且压缩包处理基本上只有三条思路:伪加密,爆破,明文思路。本文将通过几个简单实例带您了解CTF之压缩包处理。
例题一:基础破解
下载附件得到压缩包。
发现需要输入密码才能解压。

根据提示使用ARCHPR进行4位数字的掩码爆破。

得到压缩包口令: 2563。
解压得到flag.txt。
直接base64解码,得flag值。

例题二:zip伪加密
下载附件得到压缩包。 
同样发现需要输入密码才能解压。

使用010 Editor工具打开压缩包。

一个zip文件由三个部分组成:压缩源文件数据区+压缩源文件目录区+压缩源文件目录结束标志。
结合本例题:
压缩源文件数据区为:50 4B 03 04
压缩源文件目录区为:50 4B 01 02
压缩源文件目录结束标志:50 4B 05 06
需要注意的加密点,每组四位数字,只和第二个数字有关系。
第二个数字为奇数时 –>加密
第二个数字为偶数时 –>未加密
① 无加密
压缩源文件数据区的全局加密应当为00 00 (50 4B 03 04两个bytes之后)
且压缩源文件目录区的全局方式位标记应当为00 00(50 4B 01 02四个bytes之后)
② 假加密
压缩源文件数据区的全局加密应当为00 00
且压缩源文件目录区的全局方式位标记应当为09 00
③ 真加密
压缩源文件数据区的全局加密应当为09 00
且压缩源文件目录区的全局方式位标记应当为09 00
这样一看好像这题是真加密来着,但是我们直接修改就会发现它是无加密的。
保存后解压,得到flag值。

例题三:明文攻击
下载附件得到压缩包。 
解压附件后得到一个压缩包和一张图片。

压缩包中包含了两个txt文件,且需要输入密码才能解压。

先将图片拖入010Editor工具中,发现尾部存在一个flag.txt,但是缺少一个包头。

补充zip文件头(加上50 4B),并以zip格式保存。


打开后得到flag.txt,和加密压缩包中有相同的内容,所以使用明文爆破。

常规爆破即可,最终获得flag值。
flag{3te9_nbb_ahh8}