那些图片隐写中的神操作之JPG

3,289 阅读2分钟

我正在参加「创意开发 投稿大赛」详情请看:掘金创意开发大赛来了!

引子

对于JPG大家应该是非常熟悉了(文件头:FFD8FF 文件尾:FF D9),借用百度百科的资料来说:

JPEG(Joint Photographic Experts Group)是JPEG标准的产物,该标准由国际标准化组织(ISO)制订,是面向连续色调静止图像的一种压缩标准。 [1]  JPEG格式是最常用的图像文件格式,后缀名为.jpg或.jpeg

你可曾想到JPG其实也可以藏着需要重要信息呢,接下来我将以CTF比赛中遇到的JPG图片隐写方式,给大家看看出题的创意

属性隐写

先来一个最简单的,右键属性大家知道不,往往有的信息就在属性之中,对于这种隐写方式,我们有一个专门工具EXITFOOL,该工具可以一键列出该图片的所有属性,十分好用

outguess隐写

首先在终端执行命令下载工具

git clone https://github.com/crorvick/outguess

随后输入以下命令进行安装

cd outguess
./configure && make && make install

然后执行命令解密即可

./outguess -k "hahahahahahaha" -r flag.jpg out.txt

steghide

Steghide是一款开源的隐写术软件,它可以让你在一张图片或者音频文件中隐藏你的秘密信息,而且你不会注意到图片或音频文件发生了任何的改变。而且,你的秘密文件已经隐藏在了原始图片或音频文件之中了。这是一个命令行软件。因此,你需要学习使用这个工具的命令。你需要通过命令来实现将秘密文件嵌入至图片或音频文件之中。除此之外,你还需要使用其他的命令来提取你隐藏在图片或音频中的秘密文件。

基本用法

将secret.txt文件隐藏到text.jpg中:

steghide embed -cf test.jpg -ef secret.txt -p 123456

从text.jpg解出secret.txt:

steghide extract -sf test.jpg -p 123456

f5隐写

工具地址:https://github.com/matthewgao/F5-steganography

有密码解密

java Extract 1.jpg -p 123456

无密码解密

java Extract 1.jpg

会生成一个output.txt

至于原理,这里有一篇文章感觉讲的不错

blog.csdn.net/m0_46296905…

SlientEye

强大的媒体加密程序是隐写一个简单易用的跨平台应用程序的设计,在这种情况下,隐藏的信息为图片或声音,它提供了一个很好的接口集成新的隐写算法和过程通过使用插件的密码。

该工具也是一款时不时会用到的工具,使用方法也很简单,只需要将JPG图片放入工具解码即可

补充

以上说了几个比较常见的CTF中充满套路的隐写术,当然也有一些没有提到,比如根据CRC的错报来判断JPG的宽高被修改,导致的数据被隐藏。有兴趣的小伙伴可以在评论区补充。