【CTF】初识 ZIP 伪加密

前言

本博文以两道题目为例,浅谈关于zip伪加密的一些内容。

题一:

从网站中下载下来一个ee2f7f26-5173-4e7a-8ea4-e4945e6f04ff.zip压缩包文件,根据题目提示,这是个zip伪加密,因此有以下两种做法,

法一:

将压缩包通过QQ发给好友,再用手机打开查看,不一定每次都行,

QQ解密

法二:

先来了解一下zip的组成 一个 ZIP 文件由三个部分组成:   压缩源文件数据区+压缩源文件目录区+压缩源文件目录结束标志

  • a.压缩源文件数据区: 50 4B 03 04:这是头文件标记(0x04034b50) 14 00:解压文件所需 pkware 版本 00 00:全局方式位标记(有无加密,奇数加密,偶数无加密) 08 00:压缩方式 5A 7E:最后修改文件时间 F7 46:最后修改文件日期 16 B5 80 14:CRC-32校验(1480B516) 19 00 00 00:压缩后尺寸(25) 17 00 00 00:未压缩尺寸(23) 07 00:文件名长度 00 00:扩展记录长度 6B65792E7478740BCECC750E71ABCE48CDC9C95728CECC2DC849AD284DAD0500
  • b.压缩源文件目录区: 50 4B 01 02:目录中文件文件头标记(0x02014b50) 3F 00:压缩使用的 pkware 版本 14 00:解压文件所需 pkware 版本 00 00:全局方式位标记(有无加密,奇数加密,偶数无加密) 08 00:压缩方式 5A 7E:最后修改文件时间 F7 46:最后修改文件日期 16 B5 80 14:CRC-32校验(1480B516) 19 00 00 00:压缩后尺寸(25) 17 00 00 00:未压缩尺寸(23) 07 00:文件名长度 24 00:扩展字段长度 00 00:文件注释长度 00 00:磁盘开始号 00 00:内部文件属性 20 00 00 00:外部文件属性 00 00 00 00:局部头部偏移量 6B65792E7478740A00200000000000010018006558F04A1CC5D001BDEBDD3B1CC5D001BDEBDD3B1CC5D001
  • c.压缩源文件目录结束标志: 50 4B 05 06:目录结束标记 00 00:当前磁盘编号 00 00:目录区开始磁盘编号 01 00:本磁盘上纪录总数 01 00:目录区中纪录总数 59 00 00 00:目录区尺寸大小 3E 00 00 00:目录区对第一张磁盘的偏移量 00 00 1A:ZIP 文件注释长度

将压缩包扔进010Editor_001,

在这里插入图片描述

以下两张图属于学术借用,

1
2

一般在压缩源文件数据区全局方式位标记处,真加密为 09 00,伪加密为00 00,而后面将压缩源文件目录区全局方式位标记处从 00 00 改为 09 00 就完成了伪加密,然后看这道题,直接看好像是真加密,但其实是将两处标记处全改为了 09 00,改回去,

在这里插入图片描述

保存后,即可解压zip压缩文件,不再需要密码,得到flag,flag{Adm1N-B2G-kU-SZIP}。

题二:

从网站中下载下来一个123456cry.jpg图片文件,在属性没有发现任何提示,直接扔进010Editor,

分析原图

发现图片中隐写了压缩包,将PK之前的十六进制全部删除,另存为.zip格式,解压发现需要密码,尝试了下之前那张图片的名称,发现不对,又没有提示,猜测是伪加密,

分析1

由于压缩包里还含有一个压缩包,所以有点难以辨别,50 AB 05 06是压缩源文件结束目录标志,所以在那整句话之后的才属于正在解压的文件的十六进制,

发现压缩源文件的目录区有密码,将它改掉,成功解压,得到一张good-已合并.jpg文件和qwe.zip压缩包,但是并分析不出东西,使用steghide对图片进行分析,

分析2

为了方便,将图片重命名为1.jpg,图片并没有进行加密,发现隐藏文件ko.txt,分离查看得到压缩包密码bV1g6t5wZDJif^J7,解压压缩包,获得flag,flag{1RTo8w@&4nK@z*XL}。