1 介绍
在CTF的MISC中,经常会将flag隐藏在图片中。我们可以用Linux下的binwalk或者foremost进行图片文件的分离,这里我们选用分别介绍两种方法。
在Kali Linux上安装binwalk和foremost:
# apt-get install binwalk |
题目中给出的图片如下图所示,图片名称为2.jpg,从图片中我们得不到任何信息:
2 Binwalk
2.1 分析
我们用binwalk分析图片的组成:
# binwalk 2.jpg |
从分析结果中我们可以看到,图片文件中隐藏了一个名为flag.txt的文件,而且是被压缩过的,其起始块是40078。
2.2 分离
我们使用dd命令分理出隐藏在图片中的.zip文件:
# dd if=2.jpg of=1.zip skip=40078 bs=1 |
其中if=2.jpg是输入文件,of=1.zip是输出文件,skip是指定从输入文件开头跳过40078个块后再开始复制,bs设置每次读写块的大小为1字节 。
然后我们将分离出来的1.zip解压,就可以看到flag:
2 Foremost
利用以下命令:
foremost 2.jpg |
可以直接将图片文件中包含的所有文件分离,输出到一个output文件夹中。打开这个文件夹,我们可以看到audit.txt为记录分离过程的文件,jpg为该图片文件中包含的所有.jpg文件,zip为该图片文件中包含的所有.zip文件。打开zip文件,并解压其中的00000078.zip,就可以得到flag。