解题思路
题目给了个文件夹,内部文件是 flag.txt,但压缩包有密码,无法直接获取文件。
从题目:zip 伪加密来看,应该是其实没有加密,但是却显示加密,所以看看有没有其他突破口。binwalk 无法直接破解压缩包。
查询 zip 伪加密,获知原理后,将压缩包放至 010 editor 进行修改。将 09,修改为 00
发现压缩包可以解压了,获得了 flag。
题目设计原理
题目设计:主要考察了 zip 伪加密的原理。
题目原理:
CTF 中碰到加密的 zip 文件,一般有以下三种破解方法:
-
根据提示解出密码
-
暴力破解密码
-
伪加密修改
原理:
-
压缩源文件数据区:
①50 4B 03 04:这是头文件标记 (0x04034b50)
②14 00:解压文件所需 pkware 版本 ③00 00:全局方式位标记(判断有无加密) ④08 00:压缩方式 ⑤5A 7E:最后修改文件时间 ⑥F7 46:最后修改文件日期
-
压缩源文件目录区:
①50 4B 01 02:目录中文件文件头标记 (0x02014b50) ②1F 00:压缩使用的 pkware 版本 ③14 00:解压文件所需 pkware 版本 ④00 00:全局方式位标记(判断是否为伪加密) ⑤08 00:压缩方式 ⑥5A 7E:最后修改文件时间 ⑦F7 46:最后修改文件日期
-
压缩源文件目录结束标志:
①50 4B 05 06:目录结束标记 ②00 00:当前磁盘编号 ③00 00:目录区开始磁盘编号 ④01 00:本磁盘上纪录总数 ⑤01 00:目录区中纪录总数 ⑥59 00 00 00:目录区尺寸大小 ⑦3E 00 00 00:目录区对第一张磁盘的偏移量 ⑧00 00:ZIP 文件注释长度
判断是否加密:
注意:全局方式位标记的四个数字中只有第二个数字对其有影响,其它的不管为何值,都不影响它的加密属性,即: 第二个数字为奇数时 –> 加密 第二个数字为偶数时 –> 未加密
-
无加密:
压缩源文件数据区的全局方式位标记应当为00 00 (50 4B 03 04 14 00 后) 且压缩源文件目录区的全局方式位标记应当为00 00 (50 4B 01 02 14 00 后)
2. 伪加密:
压缩源文件数据区的全局方式位标记应当为 00 00 (50 4B 03 04 14 00 后) 且压缩源文件目录区的全局方式位标记应当为 09 00 (50 4B 01 02 14 00 后)
3. 真加密:
压缩源文件数据区的全局方式位标记应当为09 00 (50 4B 03 04 14 00 后)
且压缩源文件目录区的全局方式位标记应当为09 00 (50 4B 01 02 14 00 后)
参考资料:
zip伪加密:CTF——zip伪加密-CSDN博客
总结
OK,今天也是学到东西的一天,发了那么多天简单的东西,终于舍得上点干货了。
标签:00,加密,14,zip,标记,50,4B From: https://blog.csdn.net/Sweet_vinegar520/article/details/143871311