首页 > 技术文章 > MISC之图片隐写入门笔记

WHU-TD 2021-04-02 21:10 原文

之前一时兴起,了解了一丢丢CTF的知识,就立马拿来分享了!(请CTF大佬多多包涵,多多指正)

先简要介绍一下CTF吧~

CTF,全称Capture The Flag,在网络安全领域中指的是网络安全技术人员之间进行技术竞技的一种比赛形式,说人话就是通过各种手段找到题目中隐藏的flag

题型有MISC,PPC,CRYPTO,REVERSE,STEGA,PWN,WEB这几类。

我们今天的主角MISC(安全杂项):全称Miscellaneous。题目涉及流量分析、电子取证、人肉搜索、数据分析、大数据统计等等,覆盖面比较广。主要考查参赛选手的各种基础综合知识,考察范围比较广。说人话,就是大杂烩题(不是)

MISC题型的主要考察类型有1.数据编码/图形密码

​ 2.图片隐写

​ 3.音频隐写、视频隐写

​ 4.流量分析

​ 5.内存取证

​ 6.游戏隐写

今天就来向大家简单介绍一下图片隐写这一类的基础知识、一些基本题型和解题方法。

基础工具

包括但不限于010Editor,虚拟机(大家之前已经安装过的Linux啦)

image-20210326195900299

​ 这是010Editor

虚拟机大家都接触过,我这里就重点说一下010Editor(后面简称为010)。

这是一款可以查看图片二进制或十六进制形式的软件。页面是这样哒image-20210326202831693

​ 这是我打开一张动图后的页面。

可以看到上面分成了两半,左边那一半是这个动图的十六进制格式image-20210326200324214

右边是文件内容。image-20210326202831693 - 副本

下方那个表格是文件母版,包括颜色等等,可以隐藏信息image-20210326202831693 - 副本 - 副本

在它文件内容的开头可以看到文件格式(看到右边开头的GIF了吗)

十六进制格式里可以去找相应格式的固定开头和结尾。在图片显示时,只读取第一个开头到第一个结尾的内容并进行显示。所以有套娃类的题型(png里还有一个png这一类,懂的都懂)

基本题型+解题方法

有的题型不需要任何工具。比如:

属性中的隐藏

这是一个帅气的小姐姐对不对?你们是不是有人不知道她是谁?没关系,图片的属性里隐藏了答案哟
  1. 单击右键找到属性

  2. 找到详细信息那一栏

3. 查看标题,作者等部分

好了,让我们看看她的名字~

她就是御坂美琴~

文件末尾或文件中藏有字符串

还是刚刚的小姐姐~

那她的能力是什么?我们来找找答案。

刚刚说图片显示是从第一个开头读到第一个结尾,所以在结尾处是不是可以藏东西呢嘿嘿

用010打开图片,看到末尾

哦~她的能力是Electro Master。也就是电击使啊~

除了用010查看,还可以用虚拟机中命令行进行查看:在终端中输入strings 文件名

(如果没有事先配置好,会出现image-20210326211714505。在终端中输入sudo apt install binutils就可以安装啦)

image-20210326211533504

就可以看到她的能力啦~

P.S. 如果显示No such file就说明图片没有放到虚拟机的文件夹里,放进去就OK了

这里只加了结尾的隐藏字符串,有的字符串加在中间也是不会影响图片显示的。这种情况在010中就难以察觉,但是用strings命令就很明显~

如果你知道信息的一部分,你就可以用grep -a "已知内容" 文件名来查找,比如flag格式一般是flag{...},所以我们取找找下面这张图里的flag

2

用grep命令行搜索flag

image-20210326212823463

找到啦啦啦

文件包含

可以在结尾后包含字符串,是不是意味着也阔以在结尾后包含整个文件呢?

来看看这张图片里藏了什么~

可以用binwalk 文件名来看看(要用sudo apt install binwalk命令行事先安装~)

image-20210327105414394

可以看到里面隐藏了一张jpg文件

还可以用binwalk -e 文件名这个命令,这个命令会分出一个文件夹

image-20210327105520299

文件夹打开后:

image-20210327105611366

对这个题来说,上面两个命令好像没什么用(只让我们知道了隐藏文件类型,并没有把文件分离出来),但是对有的题目,是很有用的啦

那么怎么把文件分离出来呢?

这就要用到foremost 文件名这个命令~

image-20210327110054471

可以看到,它会生成一个output文件夹,里面会有隐藏的所有文件及它们的属性信息~

image-20210327110240713

点进jpg文件夹就可以看到那个隐藏的图片啦

image-20210327110345142

GIF隐写

特殊帧

即动图中有一帧含有特殊信息

image1

可以看到有东西闪过是不是?

第一种方法,用PS

即用PS打开GIF,右下角可以看到每一个图层

image-20210327111037357

每次只打开一个图层左侧的小眼睛,找到特殊的那一帧,就可以看到信息啦

第二种方法:用Stegsolve.jar

image-20210327111241973

FILE-OPEN-选择文件

然后Analyse-Frame Browser

就可以点击下方“<”键或">"键查看不同帧,找到特殊的那一帧

就找到啦

点击Save还可以保存图片(有时候特殊帧里还要去找信息)~

Railgun是御坂美琴的代号啦~

桢延迟时间

如果没有特殊帧,可能就是帧之间的时间间隔隐藏了东西

怎么看时间间隔呢?

用PS打开图片

窗口-时间轴

点击时间轴帧下方小三角

可以看到帧延迟时间为0.10秒

有的时候帧延迟时间和其它帧不同的那一帧含有隐藏信息。有的时候需要把所有帧延迟时间转成二进制或者摩斯密码形式。(比如,帧延迟时间只有0.1和0.2秒两种,可能就要把0.1当0,0.2当1来看二进制或者摩斯密码)

好啦,今天的技术分享就到这里。这只是图片隐写的一小小部分,CTF是一片很广阔的天地,欢迎大家去探索~

参考文献:

1.ctf 网络安全比赛简介https://blog.csdn.net/whatday/article/details/103045896

参考视频:

1.涅普计划-ctf入门课https://www.bilibili.com/video/BV1VA411u7Tg?t=1049&p=2

推荐阅读