CTF之双图比较 (Image Comparison)中的Stegsolve与QR_Research配合使用

在CTF(Capture The Flag)竞赛中,参赛者常常面临隐写术挑战,需要通过对图像进行深入分析来解码隐藏信息。本文记录了一道简单的关于图像分析的题,如何使用隐写分析工具Stegsolve.jar来处理这类挑战。本例中,首先得到两张看似相同的图片,使用Stegsolve的Image Combiner功能揭露出其中隐藏的二维码。此后,通过进一步分析三个不同颜色通道中的二维码,揭示了使用DES算法和特定密钥加密的文本。最终,利用这些信息成功解密出竞赛的flag。

拿到题目,解压文件得到两张图片,看起来是两张相同的照片(仅仅肉眼感官上的相同)

Screenshot_15.png

图片分析

使用命令java -jar StegSolve.jar 打开隐写分析工具Stegsolve, 先打开第一张图片first.png

Screenshot_1.png

再选择 Analyse --> Image Combiner项打开第二张second.png 其中Analyse的子项从上到下的依次意思是

File Format (文件格式):
作用: 查看并了解图像文件的基本信息和格式。
用途: 了解图像的类型(如PNG, JPEG, BMP等)和相关的元数据。

Data Extract (数据提取):
作用: 从图像中提取隐藏的二进制数据或文件。
用途: 尝试找到隐藏在图像中的数据,常用于隐写术(steganography)中。

Steregram Solve (立体图解密):
作用: 分析和解密立体图(如隐藏在图像中的立体信息)。
用途: 在某些挑战中,图像可能包含隐藏的3D信息,需要使用该功能来解密。

Frame Browser (帧浏览器):
作用: 浏览和查看多帧图像(如GIF动画)的每一帧。
用途: 逐帧查看图像,寻找隐藏的信息或变化。常用于分析GIF文件中的隐藏内容。

Image Combiner (图像合成器):
作用: 合并多张图像或图像的不同通道。
用途: 将图像的不同部分或通道合并在一起,可能会揭示隐藏的信息或模式。

Screenshot_2.png

此时我们可以点击下方的<>左右切换,在对比过程中发现二维码了,将其保存 solved.bmp

Screenshot_3.png

通过Stegsolve再次打开刚刚保存的二维码,,发现三个完整的QR,分别是Blue plane 0、Green plane 0、Red plane 0

Screenshot_13.png

Screenshot_6.png

Screenshot_7.png

分别保存三个QR,这里分别命名为:QR-Blue.bmp、QR-Green.bmp、QR-Red.bmp

Screenshot_8.png

二维码识别

我们再通过QR_Research对刚刚保存的QR进行识别,先扫QR-Blue.bmp,得到一串加密字符 U2FsdGVkX18IBEATgMBe8NqjIqp65CxRjjMxXIIUxIjBnAODJQRkSLQ/+lHBsjpv1BwwEawMo1c=

Screenshot_9.png

这段文本是使用OpenSSL的命令行工具加密生成的,其前缀 U2FsdGVkX1 是典型的OpenSSL加密字符串的标志。这意味着该文本很可能使用了某种对称加密算法,如AES或DES,其中加密时使用了salt(盐值)以提高加密强度。

解密这段文本需要知道:

1. 使用的确切加密算法(如AES或DES)。
2. 加密时使用的密钥。
3. 加密算法的工作模式和填充方式(如果适用)。
4. 任何初始向量(IV),如果使用了需要IV的工作模式。

继续扫码 QR-Green.bmp文件,得到一串字符串6XaMMbM7

Screenshot_10.png

字符串 "6XaMMbM7" 看起来是一个随机生成的密码或密钥,但很难确定它确切的用途或含义。

继续扫描 QR-Red.bmp,显示了DES,我们知道DES是一种加密算法。

Screenshot_11.png

根据三个QR的扫码结果综合来看,我们可以得到加密算法为DES加密,密钥为6XaMMbM7 加密后的内容为U2FsdGVkX18IBEATgMBe8NqjIqp65CxRjjMxXIIUxIjBnAODJQRkSLQ/+lHBsjpv1BwwEawMo1c=

于是我们将上面活得的字符串在在线解密平台进行解密后,得到flag:ctf{67a166801342415a6da8f0dbac591974}

Screenshot_12.png

Posted in CTF

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注