CTF——zip伪加密

目录

1.前文:

2.原理:   

        1.压缩源文件数据区:

          2.压缩源文件目录区:

          3.压缩源文件目录结束标志:

3.判断是否加密:

        1.无加密:

        2.伪加密:

        3.真加密:

4.修改方法:

5.其他途径:

6.反例:

        (1)用binwalk-e 无视伪加密:

         (2)在kali中打开:

         (3)用ZipCenOp.jar工具:

         (4)用WinRAR的修复功能:

7.总结:


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

         

        2.伪加密:

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

         

        3.真加密:

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

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

           

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这一方法更胜一筹。

  • 49
    点赞
  • 357
    收藏
    觉得还不错? 一键收藏
  • 12
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值