ZIP-伪加密
本帖最后由 52pjh 于 2022-10-30 00:24 编辑ZIP-伪加密
下载后得到一个ee2f7f26-5173-48ea4f.zip随后尝试解压,
提示输入密码CTF中压缩包加密解密一般有三种方法
1,暴力破解
2, ZIP伪加密
3, 已知明文攻击
这里我们着重介绍ZIP伪加密(一个简简单单的加密方式,层次深得直接可以用Binwalk工具的binwalk-e命令无视伪加密直接打开,Macos可以直接提取)
在ZIP文件中,文件头和每个文件的核心目录区都有通用标记位。核心目录区的通用标记位距离核心目录区头504B0102的偏移为8字节,
其本身占2字节,最低位表示这个文件是否被加密,将其改为奇数后,再次打开会提示输入密码。但此时文件的内容并没有真的被加密,
所以被称为伪加密,只要将该标志位重新改回0或偶数后,即可正常打开。
这个地方我们可以用010或者Winhex工具这里我们以winhex为例
把放进
打开可以看到他的十六进制数据
这里是本文的重点所在,用winhex判断zip文件是否为伪加密
伪加密的特征:
压缩源文件数据区的全局方式位标记应当为 0000(504B 03 04 14 00 后)
且压缩源文件目录区的全局方式位标记应当为 0900 (504B 01 02 14 00 后)
通过将压缩源文件目录区的09 00改为00 00就可以还原伪加密
接着直接解压就可以直接得到压缩内容
-------------------------------------------------------------------------------------------------------------------------------------------
打开就看到了旗下边补充一下伪加密的知识
1压缩源文件数据区:
50 4B 03 04:这是头文件标记
14 00:解压文件所需pkware 版本
00 00:全局方式位标记(判断有无加密)
08 00:压缩方式
50 A3:最后修改文件时间
A5 4A:最后修改文件日期
2压缩源文件目录区:
50 4B 01 02:目录中文件文件头标记
1F 00:压缩使用的pkware 版本
14 00:解压文件所需pkware 版本
00 00:全局方式位标记(判断是否为伪加密)
08 00:压缩方式
50A3:最后修改文件时间
A54A:最后修改文件日期
3压缩源文件目录结束标志:
50 4B 05 06:目录结束标记
00 00:当前磁盘编号
00 00:目录区开始磁盘编号
01 00:本磁盘上纪录总数
01 00:目录区中纪录总数
5A 00 00 00:目录区尺寸大小
3F 00 00 00:目录区对第一张磁盘的偏移量
00 00:ZIP文件注释长度
为什么没有数据的文本就可以解除加密。有数据的文本就不行。。修改后就显示文件已损坏{:1_908:} 那我该怎么知道是不是伪加密呢?16进制打开看看? 感谢来学习一下 感谢分享! 666666666666 牛人!66666 666,我把伪加密的ZIP发给一个电脑盲,然后。。。{:1_1:} 学习学习了
页:
[1]
2