题目描述
注意:得到的 flag 请包上 flag{}
提交。
Solution
LSB 全称 Least Significant Bit,最低有效位。PNG 文件中的图像像数一般是由 RGB 三原色(红绿蓝)组成,每一种颜色占用 8 位,取值范围为 0x00
至 0xFF
,即有 256 种颜色,一共包含了 256 的 3 次方的颜色,即 16777216 种颜色。
而人类的眼睛可以区分约 1000 万种不同的颜色,意味着人类的眼睛无法区分余下的颜色大约有 6777216 种。
LSB 隐写就是修改 RGB 颜色分量的最低二进制位(LSB),每个颜色会有 8 bit,LSB 隐写就是修改了像数中的最低的 1 bit,而人类的眼睛不会注意到这前后的变化,每个像素可以携带 3 比特的信息。
如果是要寻找这种 LSB 隐藏痕迹的话,有一个工具 Stegsolve 是个神器,可以来辅助我们进行分析。
我们拿到题目,先在 Kali 下用file
和binwalk
命令去检测文件信息:
由此观之,题目没有嵌入文件在里边。我们用 Stegsolve 看看能找到什么信息。把图片拖入 Stegsolve,然后选择 Analyse → Data Extract 进行指定通道提取:
可以看到这个通道是藏了一个 PNG 图片的。我们点击 Save Bin 保存到桌面,可以发现是一张二维码:
最后再用 Psytec QR Code Editor 工具扫描二维码,即可得到 Flag: