zip伪加密
目录
1.前文:
2.原理:
1.压缩源文件数据区:
2.压缩源文件目录区:
3.压缩源文件目录结束标志:
3.判断是否加密:
1.无加密:
2.伪加密:
3.真加密:
4.修改方法:
5.其他途径:
6.反例:
(1)用binwalk-e 无视伪加密:
(2)在kali中打开:
(3)用ZipCenOp.jar工具:
(4)用WinRAR的修复功能:
7.总结:
1.前文:
在做CTF的misc题目时经常会碰到需要密码的zip文件,打开这种需要密码的方法无非就这三种:
(1)根据提示或其他文件解出密码
(2)暴力破解
(3)伪加密修改
在这里我们讲一下第三个伪加密的原理和修改方法。
2.原理:
1.压缩源文件数据区:
50 4B 03 04:这是头文件标记 (0x04034b50)
14 00:解压文件所需 pkware 版本
00 00:全局方式位标记(判断有无加密)
08 00:压缩方式
5A 7E:最后修改文件时间
F7 46:最后修改文件日期
2.压缩源文件目录区:
50 4B 01 02:目录中文件文件头标记 (0x02014b50)
1F 00:压缩使用的 pkware 版本
14 00:解压文件所需 pkware 版本
00 00:全局方式位标记(判断是否为伪加密)
08 00:压缩方式
5A 7E:最后修改文件时间
F7 46:最后修改文件日期
3.压缩源文件目录结束标志:
50 4B 05 06:目录结束标记
00 00:当前磁盘编号
00 00:目录区开始磁盘编号
01 00:本磁盘上纪录总数
01 00:目录区中纪录总数
59 00 00 00:目录区尺寸大小
3E 00 00 00:目录区对第一张磁盘的偏移量
00 00:ZIP 文件注释长度
3.判断是否加密:
注意:
全局方式位标记的四个数字中只有第二个数字对其有影响,其它的不管为何值,都不影响它的加密属性,即:
第二个数字为奇数时 –>加密
第二个数字为偶数时 –>未加密
1.无加密:
压缩源文件数据区的全局方式位标记应当为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 后)

4.修改方法:
确定是伪加密后就需要将其修改为无加密,方法很简单,就是将压缩源文件目录区的全局方式位标记从09 00改为00 00。


5.其他途径:
(1)用binwalk-e 无视伪加密
(2)在macOS和kali系统中,可以直接打开伪加密zip文件
(3)检测伪加密的工具ZipCenOp.jar
(4)有时用WinRAR的修复功能
(来自书本《CTF安全竞赛入门》)
6.反例:
这里是本文的重点所在,用winhex判断zip文件是否为伪加密存在问题,如图所示:

按照上述的判断方法可以得出这是一个加密的zip文件,但实际上这是一个伪加密的zip文件,所以仅靠这种方法不能100%准确判断。
(题目来源:BUUCTF在线评测)
既然这种方法存在问题,那么书本上的其他方法又如何呢,这里我将每个方法试了一试:
(1)用binwalk-e 无视伪加密:
在kali中使用自带的函数binwalk,运行后会出现一个文件夹,里面有一个zip文件和
txt文件,但打开txt文件发现没有任何内容。


(2)在kali中打开:
在kali中直接打开还是需要密码

(3)用ZipCenOp.jar工具:
使用ZipCenOp.jar工具,显示是伪加密,但直接还是打不开

(4)用WinRAR的修复功能:
添加压缩文件--->选择工具--->点击修复压缩文件,结果不尽人意,还是打不开


7.总结:
zip伪加密的知识点非常简单,一般来说在winhex中修修改改就能解决问题,但在准确度上,还是用工具ZipCenOp.jar这一方法更胜一筹。
本文作者:lilangu
本文链接:https://www.cnblogs.com/Liagu/p/18194669
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步