文件分析-ZIP伪加密

最近在准备铁人三项赛的比赛,所以在实验吧上尝试着学习CTF,目前菜鸡一枚

我主要负责的是Web和安全杂项这一块,安全杂项的知识点较为薄弱,在实验吧练习的过程中遇到一个很有趣的题目,题目URL:

http://ctf5.shiyanbar.com/misc/LOL/LOL.pcapng

这个题目有很多大神已经给出了wirteup,在这里主要是想记录一下其中未接触到的东西,比如等会要说到的ZIP伪加密

将这个文件下载下来之后,显然这需要用wireshark进行流量分析,使用wireshark打开,发现整体上,可疑的流量就是两个上传的文件了

我们过滤一下http,可清楚看到两个上传的文件

我们追踪一下HTTP流,可以发现,里边上传的两个文件分别是LOL.docx和LOL.zip

导出分组字节,得到两个文件。

其中,LOL.docx里面是一张图片和一句话(这里的这个文件是一个误导,重点是在Zip文件)

我们把目光转向LOL.zip这个文件夹,解压发现是要密码的,可能这里很多人会认为解压密码隐藏在文档里面的图片里,然后去做图片隐写,但是这并不是一个正确的方向。

把zip文件丢入winhex中进行分析,在查阅了很多资料后,发现这是一个zip伪加密。

那什么是zip伪加密

首先,我们来看zip文件头协议。

一个 ZIP 文件由三个部分组成:

压缩源文件数据区+压缩源文件目录区+压缩源文件目录结束标志

实例

下面给出西普的一个实例:



压缩源文件数据区:

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

压缩源文件目录区:

50 4B 01 02:目录中文件文件头标记(0x02014b50)

3F 00:压缩使用的 pkware 版本

14 00:解压文件所需 pkware 版本

00 00:全局方式位标记(有无加密,这个更改这里进行伪加密,改为09 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

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

50 4B 05 06:目录结束标记

00 00:当前磁盘编号

00 00:目录区开始磁盘编号

01 00:本磁盘上纪录总数

01 00:目录区中纪录总数

59 00 00 00:目录区尺寸大小

3E 00 00 00:目录区对第一张磁盘的偏移量

00 00:ZIP 文件注释长度

综上,也就是说,当压缩源文件目录区的全局方式位标记被更改,就会限制Zip文件的可读性

所以,我们就会想到,修改后的话,就会改变Zip文件的可读性了

从百度上找到的资料说,全局方式位标记如果第二位是偶数,那么就不加密,反之,如果是奇数的话,就是加密的

那我们就可以通过WinHex将其修改,就能成功得到里面的文件了。

解压后,得到4个TXT文件,通过WinHex看其标志,发现是Png类型的文件,将其添加Png类型,得到4个图片,用PS拼接后得到一个二维码,扫码后就可以得到flag

学习CTF的经历-文件分析的更多相关文章

  1. 想学习CTF的一定要看这篇,让你学习效率提升80%

    在学习CTF过程中你是否遇到这样的情况: 下定决心想要学习CTF,不知道从哪里开始? 找了一堆CTF相关的知识学习,但是知识点太凌乱,没有统一明确的学习路径. 又或者理论学习完,没有相应的实操环境? ...

  2. java之jvm学习笔记三(Class文件检验器)

    java之jvm学习笔记三(Class文件检验器) 前面的学习我们知道了class文件被类装载器所装载,但是在装载class文件之前或之后,class文件实际上还需要被校验,这就是今天的学习主题,cl ...

  3. Windows phone 8 学习笔记(2) 数据文件操作

    原文:Windows phone 8 学习笔记(2) 数据文件操作 Windows phone 8 应用用于数据文件存储访问的位置仅仅限于安装文件夹.本地文件夹(独立存储空间).媒体库和SD卡四个地方 ...

  4. Nmap脚本文件分析(AMQP协议为例)

    Nmap脚本文件分析(AMQP协议为例) 一.介绍 上两篇文章 Nmap脚本引擎原理   编写自己的Nmap(NSE)脚本,分析了Nmap脚本引擎的执行过程,以及脚本文件的编写,这篇文章将以解析AMQ ...

  5. MQTT再学习 -- MQTT 客户端源码分析

    MQTT 源码分析,搜索了一下发现网络上讲的很少,多是逍遥子的那几篇. 参看:逍遥子_mosquitto源码分析系列 参看:MQTT libmosquitto源码分析 参看:Mosquitto学习笔记 ...

  6. linux内核中链表代码分析---list.h头文件分析(一)【转】

    转自:http://blog.chinaunix.net/uid-30254565-id-5637596.html linux内核中链表代码分析---list.h头文件分析(一) 16年2月27日17 ...

  7. 【Four-Week-Task】四周学习CTF之第一周【寒假更新】

    写在最前:为了更好地系统学习CTF(楞头冲很惨 别问我怎么知道的 除非你是天才),决定先看再学,先正向再逆向. /* 出版排版规范中,标题序号等级为:第一级,一.二.三.(用顿号):第二级,(一).( ...

  8. Tableau学习Step2一数据文件的读取与统计图、表的概述

    Tableau学习Step2一数据文件的读取与统计图.表的概述 本文首发于博客冰山一树Sankey,去博客浏览效果更好. 一. 前言 本教程通过一个案例从浅到深来学习Tableau知识 案例概述: 二 ...

  9. 一份关于Swift语言学习资源的整理文件

    一份关于Swift语言学习资源的整理文件     周银辉 在这里下载 https://github.com/ipader/SwiftGuide

随机推荐

  1. css文本样式-css学习之旅(4)

    color:颜色derction:方向:line-height:行高:letter-spaceing:字符间距:text-align:对齐方向:text-decoration:装饰:text-inde ...

  2. 《java入门第一季》StringBuffer类小案例

    /* * 把数组拼接成一个字符串 */ public class StringBufferTest2 { public static void main(String[] args) { // 定义一 ...

  3. 菜鸟玩云计算之廿一: saltstack之pillar

    菜鸟玩云计算之廿一: saltstack之pillar 参考: 点击打开链接 查看pillar数据: # salt '*' pillar.items pillar的默认根目录在:/srv/pillar ...

  4. STL - list(双向链表)

    List简介 list是一个双向链表容器,可高效地进行插入删除元素. list不可以随机存取元素,所以不支持at.(pos)函数与[]操作符.It++(ok) it+5(err) #include & ...

  5. OC语言(一)

    一.概述 1.基本上所有关键词@开头 2.字符串以@开头,如@"Hello" 3.基本数据类型 char int float double BOOL(YES\NO) 4.空为nil ...

  6. Android进阶(二十一)创建Android虚拟机

    创建Android虚拟机

  7. linux命令大全(自己慢慢看)

    http://blog.zol.com.cn/874/article_873769.html rm -rf mydir /* 删除mydir目录 */ cd mydir /* 进入mydir目录 */ ...

  8. "《算法导论》之‘排序’":线性时间排序

    本文参考自一博文与<算法导论>. <算法导论>之前介绍了合并排序.堆排序和快速排序的特点及运行时间.合并排序和堆排序在最坏情况下达到O(nlgn),而快速排序最坏情况下达到O( ...

  9. 【LaTeX排版】LaTeX论文排版<三>

    A picture is worth a thousand words(一图胜千言).图在论文中的重要性不言而喻,本文主要讲解图的制作与插入. 1.图像的插入     图像可以分为两大类:位图和向量图 ...

  10. CentOS 6.5安装MongoDB 2.6(多yum数据源)

    下面我们在CentOS 6.5 x64系统上安装最新的MongoDB 2.6.5版. 在MongoDB v2.6.5版的软件仓库一共有五个包: 1)mongodb-org此包是元数据包,它可以实现自动 ...