0


CTF——zip伪加密

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 后)

    ** ![](https://img-blog.csdnimg.cn/57b1dddf2dea41589d6c651fe5b61a39.png)**

** 2.伪加密:**

压缩源文件数据区的全局方式位标记应当为 00 00 (50 4B 03 04 14 00 后)
且压缩源文件目录区的全局方式位标记应当为 09 00 (50 4B 01 02 14 00 后)

     ![](https://img-blog.csdnimg.cn/f1b1058224dd453fa5b64358e25268fc.png)

** 3.真加密:**

压缩源文件数据区的全局方式位标记应当为09 00 (50 4B 03 04 14 00 后)

且压缩源文件目录区的全局方式位标记应当为09 00 (50 4B 01 02 14 00 后)

      ![](https://img-blog.csdnimg.cn/442a0ed55afb49f4a41795f7e5d3ce25.png) 

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这一方法更胜一筹。
标签: 安全

本文转载自: https://blog.csdn.net/xiaozhaidada/article/details/124538768
版权归原作者 xiaozhaidada 所有, 如有侵权,请联系我们删除。

“CTF——zip伪加密”的评论:

还没有评论