52pjh 发表于 2022-10-30 00:15

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文件注释长度


玄冥殇 发表于 2022-10-31 16:20

为什么没有数据的文本就可以解除加密。有数据的文本就不行。。修改后就显示文件已损坏{:1_908:}

jideco 发表于 2022-10-31 12:57

笨笨家的唯一 发表于 2022-10-31 16:40

那我该怎么知道是不是伪加密呢?16进制打开看看?

qqxiazhitmac 发表于 2022-10-31 17:19

感谢来学习一下

jamessteed 发表于 2022-11-1 05:53

感谢分享!

zjl521666 发表于 2022-11-1 11:03

666666666666

wzx11 发表于 2022-11-13 10:06

牛人!66666

RainPPR 发表于 2022-11-13 10:15

666,我把伪加密的ZIP发给一个电脑盲,然后。。。{:1_1:}

yangang5157 发表于 2022-11-13 10:18

学习学习了
页: [1] 2
查看完整版本: ZIP-伪加密