ZIP-伪加密
image.png
下载后得到一个ee2f7f26-5173-48ea4f.zip随后尝试解压,
image.png
提示输入密码CTF中压缩包加密解密一般有三种方法
1,暴力破解
2, ZIP伪加密
3, 已知明文攻击
这里我们着重介绍ZIP伪加密(一个简简单单的加密方式,层次深得直接可以用Binwalk工具的binwalk-e命令无视伪加密直接打开,Macos可以直接提取)
在ZIP文件中,文件头和每个文件的核心目录区都有通用标记位。核心目录区的通用标记位距离核心目录区头504B0102的偏移为8字节,
其本身占2字节,最低位表示这个文件是否被加密,将其改为奇数后,再次打开会提示输入密码。但此时文件的内容并没有真的被加密,
所以被称为伪加密,只要将该标志位重新改回0或偶数后,即可正常打开。
这个地方我们可以用010或者Winhex工具这里我们以winhex为例
把
image.png
放进image.png
打开可以看到他的十六进制数据
image.png
这里是本文的重点所在,用winhex判断zip文件是否为伪加密
image.png
伪加密的特征:
压缩源文件数据区的全局方式位标记应当为 0000 (504B 03 04 14 00 后)
且压缩源文件目录区的全局方式位标记应当为 0900 (504B 01 02 14 00 后)
通过将压缩源文件目录区的09 00改为00 00就可以还原伪加密
image.png
接着直接解压就可以直接得到压缩内容
image.png
image.png
-------------------------------------------------------------------------------------------------------------------------------------------
打开就看到了旗下边补充一下伪加密的知识
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文件注释长度