河南省网络安全高校战队联盟CTF训练营- misc04-压缩包分析
河南省网络安全高校战队联盟CTF训练营- misc04-压缩包分析
文章目录
- 河南省网络安全高校战队联盟CTF训练营- misc04-压缩包分析
- 个人简介
- 例题下载
- MISC-压缩包
- 文件头修复
- 暴力破解密码
- zip伪加密
- 已知明文攻击
- crc32碰撞
- docx文件
个人简介
ID:七堇年,CTF萌新。
例题下载
压缩包分析例题
MISC-压缩包
- 简介:
压缩包分析在CTF-MISC中也是常见的题型,压缩包是一个电脑应用软件,可以减小文件中的比特和字节总数,达到节省磁盘空间等作用。其基本原理是查找文件内的重复字节,并建立一个相同字节的“词典”文件,并用一个代码表示,比如在文件里有几处有一个相同的词“七堇年”,用一个代码表示并写入“词典”文件,这样就可以达到缩小文件的目的。
- 压缩格式:
GZ、ACE、UUE、BZ2、JAR、ISO,MPQ以及平时常见的jpg,rmvb等格式的音视频文件也属于压缩文件。
- 压缩软件
WinRAR,好压(Haozip) ,WinZip,7-Zip,WinMount,Peazip,UHARC,FreeARC,360压缩。
其中WinRAR和WinZip是收费软件,Winmount、好压(Haozip)、Peazip、360压缩和7-Zip是免费软件。
- 前置知识
ZIP文件格式:
一个 ZIP 文件由三个部分组成:
压缩源文件数据区+压缩源文件目录区+压缩源文件目录结束标志
压缩源文件数据区:
50 4B 03 04:这是头文件标记(0x04034b50)
14 00:解压文件所需 pkware 版本
00 00:全局方式位标记(有无加密)
08 00:压缩方式
20 9E:最后修改文件时间
66 4F:最后修改文件日期
F2 1B 0F 4A:CRC-32校验(4A0F1BF2)
0E 00 00 00:压缩后尺寸
0C 00 00 00:未压缩尺寸
08 00:文件名长度
00 00:扩展记录长度
66 6C 61 67 2E 74 78 74: 文件名(不定长)
4B CB 49 4C AF 36 34 32 36 31 35 AB 05 00: 文件flag.txt压缩后的数据
压缩源文件目录区:
50 4B 01 02:目录中文件文件头标记(0x02014b50)
1F 00:压缩使用的 pkware 版本
14 00:解压文件所需 pkware 版本
00 00:全局方式位标记(有无加密,这个更改这里进行伪加密,改为09 00打开就会提示有密码了)
08 00:压缩方式 20 9E:最后修改文件时间 66 4F:最后修改文件日期
F2 1B 0F 4A:CRC-32校验(4A0F1BF2)
0E 00 00 00:压缩后尺寸
0C 00 00 00:未压缩尺寸
08 00:文件名长度
24 00:扩展字段长度
00 00:文件注释长度
00 00:磁盘开始号
00 00:内部文件属性
20 00 00 00:外部文件属性
00 00 00 00:局部头部偏移量
压缩源文件目录结束标志:
50 4B 05 06:目录结束标记
00 00:当前磁盘编号
00 00:目录区开始磁盘编号
01 00:本磁盘上纪录总数
01 00:目录区中纪录总数
5A 00 00 00:目录区尺寸大小
34 00 00 00:目录区对第一张磁盘的偏移量
00 00:ZIP 文件注释长度
RAR文件格式
RAR 文件主要由标记块,压缩文件头块,文件头块,结尾块组成。
其每一块大致分为以下几个字段:
RAR压缩包的文件头为:52 61 72 21 1A 07 00
其后是标记块(MARK_HEAD),还有文件头(FILE_HEAD)
格式 | 文件头(16进制) | 文件头(ascii) |
---|---|---|
zip | 50 4B 03 04 | PK |
rar | 52 61 72 21 | Rar! |
7z | 37 7A BC AF 27 1C | 7z¼¯’ |
文件头修复
根据zip的文件头50 4B 03 04,rar的文件头52 61 72 21来判断文件头,使用010打开查看
暴力破解密码
仅适用于密码长度小于等于6位的,大于6位时间会非常的长,可以直接用apchpr爆破
zip伪加密
伪加密就是在对应的加密标志位做修改,进而再打开文件时识被别为加密压缩包。上面在讲到文件格式的时候,提到RAR文件块的HEAD_FLAGS和ZIP的核心目录区的通用位标记,这两个就是伪加密的切入点。当拿到文件时,如果压缩文件是加密的,或文件头正常但缺无法正常解压,可先考虑是否为伪加密。通过将标志位修改为0便可解密压缩包。
猜测是Zip伪加密,使用ZipCenOp.jar进行解密
已知明文攻击
明文攻击是一种较为高效的攻击手段,大致原理是当你不知道一个zip的密码,但是你有zip中的一个已知文件(文件大小要大于12Byte)时,因为同一个zip压缩包里的所有文件都是使用同一个加密密钥来加密的,所以可以用已知文件来找加密密钥,利用密钥来解锁其他加密文件。我们为ZIP压缩文件所设定的密码,先被转换成了3个4字节的key,再用这3个key加密所有文件。如果我们能通过某种方式拿到压缩包中的一个文件,然后以同样的方式压缩,选择不去爆破密码。这种攻击方式便是已知明文攻击。
题目特征:有一个加密压缩包一个未加密压缩包(或者是一个文件)这个文件是加密压缩包的一部分
举个例子,已知明文攻击.zip 中存在的文件 明文.txt,因此将明文.txt 压缩,这里需要判断明文压缩后的CRC32是否与加密文件中的一致,若不一致可以换一个压缩工具。
crc32碰撞
CRC本身是“冗余校验码”的意思,CRC32则表示会产生一个32bit(8位十六进制数)的校验值。由于CRC32产生校验值时源数据块的每一个bit(位)都参与了计算,所以数据块中即使只有一位发生了变化,也会得到不同的CRC32值.
总之每个文件都有唯一的CRC32值,即便数据中一个bit发生变化,也会导致CRC32值不同。若是知道一段数据的长度和CRC32值,便可穷举数据,与其CRC32对照,以此达到暴力猜解的目的。但通常只适用于较小文本文件。zip文件中crc32为未加密文件的校验码,比如这里有一个加密的压缩包,直接双击就可以看见其中信息,而且我知道其中全是数字,便可使用脚本爆破。
注:需要linux环境
docx文件
docx文件就是包含xml文件的zip压缩包,可能隐藏文件、信息在压缩包里面,word直接打开是看不见的
河南省网络安全高校战队联盟CTF训练营- misc04-压缩包分析相关推荐
- 河南省网络安全高校战队联盟CTF训练营- misc04-音频隐写
河南省网络安全高校战队联盟CTF训练营- misc04-音频隐写 文章目录 河南省网络安全高校战队联盟CTF训练营- misc04-音频隐写 个人简介 例题下载 音频隐写 个人简介 ID:七堇年,CT ...
- 河南省网络安全高校战队联盟CTF训练营-web文件上传第一期
文件上传 个人介绍 姓名:飞羽 CTF菜菜一枚 例题来源 ctfhub:https://www.ctfhub.com pwnthebox:https://insider.pwnthebox.com c ...
- 2012年河南省普通高校招生本科一批院校 平行投档分数线(理科)
2012年河南省普通高校招生本科一批院校 平行投档分数线(理科) 说明: 平行志愿投档的规则:在上线考生中先按分数优先的原则从高分到低分排序(当遇到多名考生同分时,依次按照语文.数学.外语.综合科目的 ...
- 物流设计大赛优秀作品_重磅!312支高校战队入围!谁主第六届全国大学生物流设计大赛复赛...
中国物流与采购联合会培训部通知如下: 各有关院校: "马钢杯"第六届全国大学生物流设计大赛的初赛评审工作已经结束. 本届大赛共有580支参赛队取得参赛资格.大赛得到马钢集团的大力支 ...
- 阿里云获中国互联网网络安全威胁治理联盟特别贡献奖
4月16日,由国家互联网应急中心(以下简称"CNCERT")主办的<2018年我国互联网网络安全态势综述>发布会在京举行.会上,中国互联网网络安全威胁治理联盟对2018 ...
- I春秋CTF训练营web题解(一)
I春秋CTF训练营web题解(一) (1)include ==hint:没错!就是文件包含漏洞.== 点开链接,发现 通过源码可知可以提交一个path的变量,通过ctrl+f搜索allow_url_i ...
- 玩课网计算机基础课后答案,计算机类MOOC教学研讨会暨中国高校CMOOC联盟云南省工作委员会成立大会在昆明理工大学举行...
12月9日,由中国高校计算机教育MOOC联盟.云南省高校计算机基础教学指导委员会.云南省高校计算机教学研究会.玩课网主办,由昆明理工大学计算中心承办的计算机类MOOC教学研讨会暨中国高校计算机教育MO ...
- 美通企业日报 | 海信发布中国首款社交电视;阿里与VEX将成立高校机器人联盟...
要闻 中国市场人力资源科技公司50强榜单发布 耐世特与东风零部件合资公司量产电动助力转向系统 香港首家Gap奥特莱斯开业 阿里与VEX将成立高校机器人联盟 海信发布中国首款社交电视 金斯瑞与赛默飞展开 ...
- 网络安全、夺旗赛(CTF)技能汇总
本文综合博主参赛准备经历,总结介绍了过程中了解的网络安全.夺旗赛(CTF)相关知识及资源,分为资料篇.工具篇.解题思路篇. 资料篇 CTF Wiki 对CTF整体介绍,各个方向的介绍,有例题,入门必备 ...
最新文章
- 选择排序 C++代码实现及性能分析 恋上数据结构笔记
- 修改elementUI组件样式无效的问题研究
- 求一段内存中的字节型数据的和
- django models索引_sql – 为什么Django显式地在唯一字段上创建索引
- 使用Kubernetes容器服务在云上搭建AI推理环境
- Android:通过startActivityForResult方法来得到Activity的回传值
- 泄露你的JavaScript技术很烂的五个表现
- Go语言的线程模型-Goroutine机制
- 计算机专业英语2013单词翻译,计算机专业英语词汇翻译
- 使用 meson 编译代码
- 企业办公3D指纹考勤系统解决方案
- java里equal与equals_Java中关于==与equal和equals的区别
- 敏捷培训: 如何使培训产生共鸣?
- Unhandled promise rejection错误解决
- keil uvision5 cannot write project file 和 cannot read project file 解决建议
- Raspberry Pi 4 with Debian GNU/Linux 11 (bullseye)
- 使用 Math.pow()方法,求出 2 的 32 次方的值
- 一个屌丝程序猿的人生(二十四)
- 慧算账安利创业者如何选择代理记账公司
- 陆金所java_陆金所金融核心场景数据库的去 O 之路