题目描述

注意:得到的 flag 请包上 flag{} 提交。

Solution

LSB 全称 Least Significant Bit,最低有效位。PNG 文件中的图像像数一般是由 RGB 三原色(红绿蓝)组成,每一种颜色占用 8 位,取值范围为 0x000xFF,即有 256 种颜色,一共包含了 256 的 3 次方的颜色,即 16777216 种颜色。

而人类的眼睛可以区分约 1000 万种不同的颜色,意味着人类的眼睛无法区分余下的颜色大约有 6777216 种。

LSB 隐写就是修改 RGB 颜色分量的最低二进制位(LSB),每个颜色会有 8 bit,LSB 隐写就是修改了像数中的最低的 1 bit,而人类的眼睛不会注意到这前后的变化,每个像素可以携带 3 比特的信息。

BUUCTF-MISC-LSB - 图1

如果是要寻找这种 LSB 隐藏痕迹的话,有一个工具 Stegsolve 是个神器,可以来辅助我们进行分析。


我们拿到题目,先在 Kali 下用filebinwalk命令去检测文件信息:

1.png

由此观之,题目没有嵌入文件在里边。我们用 Stegsolve 看看能找到什么信息。把图片拖入 Stegsolve,然后选择 Analyse → Data Extract 进行指定通道提取:

2.png

可以看到这个通道是藏了一个 PNG 图片的。我们点击 Save Bin 保存到桌面,可以发现是一张二维码:

3.png

最后再用 Psytec QR Code Editor 工具扫描二维码,即可得到 Flag:

4.png