刚刚开始学CTF,记录一下做的第一道隐写题 ~
题目背景(我自己瞎编的):
Luyu是CPPU的校草,一直以来他的写真照被各届校友广泛流传,最近江湖上流传着拿到这些照片就能知道Luyu的QQ号的传说。有一天你拿到了两张看似一模一样但文件大小却不同的两张Luyu的照片,现在你想挖掘照片背后隐藏的信息。
在获得了两张看似一模一样且名字分别是first.png和second.png的男神图片之后,我们考虑如何同时利用这两张图片的信息。
于是我们会使用一款stegsolve的用于查看隐写图片的小工具 点我下载
由于这是java编写的软件,所以需要实现安装好jre或者jdk环境。
stegsolve功能简介:
上面是工具打开之后的界面。主要功能为analyse(分析),下面对Analyse下面几个功能键作简单介绍:
File Format:文件格式,这个主要是查看图片的具体信息
Data Extract:数据抽取,图片中隐藏数据的抽取
Frame Browser:帧浏览器,主要是对GIF之类的动图进行分解,动图变成一张张图片,便于查看
Stegdetect可以检测到通过JSteg、JPHide、OutGuess、Invisible Secrets、F5、appendX和Camouflage等这些隐写工具隐藏的信息
s – 修改检测算法的敏感度,该值的默认值为1。检测结果的匹配度与检测算法的敏感度成正比,算法敏感度的值越大,检测出的可疑文件包含敏感信息的可能性越大。
d – 打印带行号的调试信息。
t – 设置要检测哪些隐写工具(默认检测jopi),可设置的选项如下:
j – 检测图像中的信息是否是用jsteg嵌入的。
o – 检测图像中的信息是否是用outguess嵌入的。
p – 检测图像中的信息是否是用jphide嵌入的。
i – 检测图像中的信息是否是用invisible secrets嵌入的。
命令:stegdetect.exe -tjopi -s10.0 xxx.jpg
————————————————————————————————————————
显然我们既然有两张图,应该使用到Image Combiner功能,于是我们在打开first.png之后使用analyse->Image Combiner选择second.png将两张图片拼接。
将图片按像素位拼接的算法有AND、OR、SUB等,我们惊喜地在SUB(R,G,B Separate)模式下找了了一张不太清晰的二维码图片,于是我们暂时保存这张图。
鉴于这张二维码图片还不能扫描,而且看起来杂乱无章,我们怀疑这张图是由多张二维码拼接而形成的,于是我们可以再次使用stegsolve加载此图并在不同色域下分析这张图。
我们分别在Red plane 0、Green plane 0、Blue plane 0 下找到了三张清晰的二维码图。
但根据常识,这三张二维码图片看起来怪怪的,我们不难推测到这是原二维码经过"反色"处理后的图片。
于是我们可以使用 Mspaint(画图)或者其他随便的图片处理软件将三张二维码再次反色,获得原二维码。
接着我们使用二维码解析/制作软件PsQREdit (点我下载) 来反编译这三张二维码图像。
于是我们得到了三组文本信息:
DES
6XaMMbM7
U2FsdGVkX18IBEATgMBe8NqjIqp65CxRjjMxXIIUxIjBnAODJQRkSLQ/+lHBsjpv1BwwEawMo1c=
我们怀疑第一行的DES为加密算法,第二行为密钥,第二行为密文
于是可以在百度上找到一个在线DES解密工具网站进行解密即可。 (点我进入)