zip伪加密

例题
http://www.shiyanbar.com/ctf/716
说明
   由于zip文件中是用全局方式位标记来标识有无加密的,所以更改此项就能伪造此zip文件有无加密。
   一般情况下,如果文件有加密,压缩源文件数据区和压缩源文件目录去的全局方式位标记都显示有加密(一般是09 00,对于zip具体格式将在下面列出)
如果发现压缩文件数据区显示无加密,而压缩文件目录区显示有加密,则很有可能是伪加密。
解法

1、将图片下载下来,将图片后缀名改为zip,发现是一个压缩文件,右键点击解压,发现有密码。

2、用winhex打开此压缩文件,找到zip的压缩源文件数据区的头文件标记
50 4B 03 04 然后查看全局方式位标记 00 00
表示无加密(第二位奇数表示加密,偶数无加密)

这里写图片描述

再往后找到压缩源文件目录区的文件头标志50 4B 01 02 再找到之后的全局方式位标记09 00 即加密状态。和前面的加密状态不符,所以此时很可能是伪加密,可以用ziperello和azpr等跑一下,看看是不是真加密。

这里写图片描述

对于伪加密的情况,我们可以把09 00 改为00 00 然后即可打开文件。


zip格式

在此附上这一部分的原出处:

http://blog.csdn.net/wclxyn/article/details/7288994
1、压缩源文件数据区(部分)

在这个数据区中每一个压缩的源文件/目录都是一条记录,记录的格式如下:
文件头+文件数据+数据描述符
a、文件头结构

组成长度
文件头标记4bytes(0x504B0304)
解压文件所需的pkware版本2 bytes
全局方式位标记2 bytes
压缩方式2 bytes
最后修改文件时间2 bytes
最后修改文件日期2 bytes
CRC-32校验4 bytes
压缩后尺寸4 bytes
未压缩尺寸4 bytes
文件名长度2 bytes
拓展记录长度2 bytes
文件名(不定长度)
拓展字段(不定长度)

b、文件数据

c、数据描述符(不一定有,需要请自行搜索)

2、压缩源文件目录区
组成长度
目录中文件文件头标记4bytes(0x504B0102)
压缩文件所需的pkware版本2 bytes
解压文件所需 pkware 版本2 bytes
全局方式位标记2 bytes
压缩方式2 bytes
最后修改文件时间2 bytes
最后修改文件日期2 bytes
CRC-32校验4 bytes
压缩后尺寸4 bytes
未压缩尺寸4 bytes
文件名长度2 bytes
拓展记录长度2 bytes
文件注释长度2 bytes
磁盘开始号2 bytes
内部文件属性2 bytes
外部文件属性4 bytes
局部头部偏移量4 bytes
文件名(不定长度)
拓展字段(不定长度)
文件注释(不定长度)
3、压缩源文件目录结束标志
组成长度
目录结束标记4bytes(0x504B0506)
当前磁盘编号2 bytes
目录区开始磁盘编号2 bytes
本磁盘上纪录总数2 bytes
目录区中纪录总数2 bytes
目录区尺寸大小4 bytes
目录区对第一张磁盘的偏移量4 bytes
ZIP 文件注释长度2 bytes
文件注释长度(不定长度)

伪加密貌似只对zip文件有效,对于rar文件楼主没有实验成功。在此附上rar文件格式说明:

https://wenku.baidu.com/view/b7889b64783e0912a2162aa4.html

若有朋友对rar文件试验成功,欢迎一起探讨,谢谢。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值