攻防世界-Check

题目

描述:套娃? 下载附件下来是一个图片 ![[check.png]]

使用010editor查看,和正常图片对比也没有什么问题。

正常图片:

题目图片:

010editor看不出什么,但是题目只有一个图片的情况下,应该就是通过什么方法把信息隐藏在里面了。然后通过查阅资料,发现有一种隐写方式,称之为LSB隐写。具体如下:

LSB隐写

LSB 隐写 (Least Significant Bit Steganography) ,中文一般叫 最低有效位隐写术


基本原理

  • 数字文件(图像、音频、视频)本质上都是由二进制数据构成。

  • 在像素值、音频采样值等数据中,最低有效位 (LSB) 对整体感官影响很小。

    • 例如:一个像素的 RGB 分量是 10110010 (178),如果把最后一位改成 10110011 (179),人眼几乎看不出差别。
  • 因此,可以把要隐藏的信息(文本、密钥、图片等)的二进制位,逐个替换进这些最低有效位。


图像中的例子

假设一张 24 位真彩色图片,每个像素有 R、G、B 三个字节:

  • 原始像素:R=10110010, G=01011101, B=11001000

  • 如果要隐藏比特串 011,把每个颜色通道的最后一位替换掉:

    • R → 1011001010110010 (最后一位=0)

    • G → 0101110101011100 (最后一位=1 → 改成0)

    • B → 1100100011001001 (最后一位=0 → 改成1)

  • 人眼几乎看不出图片的变化,但其实里面藏了 011


解题

那么就再查资料,看一下这种隐写方式怎么处理。这里找到一个工具:StegSolve.jar 基于Java,在系统里安装适合版本的Java即可。

使用它打开图片,然后点击:Analyse → Data Extract 再勾选以下选项:然后点击 Preview 即可看到筛选的信息。再导出为txt,进行解码即可

这样,就得到flag:flag{h0w_4buT_enc0d_4nd_png}

题外话

为什么只需要查看plane 0?

1. 人眼对 LSB 不敏感

  • 一张彩色图片的每个像素通常由 8 位 R、8 位 G、8 位 B 三个通道组成。

  • 如果只改动最低有效位 (bit0),像素值最多变化 ±1(例如 178→179),人眼基本察觉不到差异。

  • 所以 最适合藏东西的位置,就是 LSB。


2. 信息容量与隐蔽性最佳点

  • 一张 1024×768 的图片 ≈ 78 万像素 × 3 通道 = ~235 万字节数据。

  • 如果只用 LSB,每个像素能藏 3 bit,总容量 ~293 KB,已经很可观。

  • 而且图像肉眼几乎不变。

  • 如果往更高 bit-plane(bit1、bit2...)藏,肉眼就可能看出色块、噪点 → 太显眼。

所以 plane0 是容量与隐蔽性的最佳折中点


3. 工具 & 出题习惯

  • 在 CTF/隐写分析中,出题人常常会用最常见的手法(R/G/B 的 plane0)。

  • 因为 plane0 一般就能显现出简单图案(文字、二维码),解题者只要用 StegSolve/zsteg 就能发现。

  • 当然,也有高难度题目会藏在 plane1、plane2,或者只藏在某个单通道(比如 Blue plane0),但「默认优先检查 plane0」是经验法则。


4. 为什么是"三原色的 plane0"

  • LSB 隐写一般不会改 alpha 通道(透明度),因为那很容易被肉眼察觉。

  • 所以目标锁定在 R/G/B。

  • 三个通道中任选一个甚至多个,放进去的隐藏信息,在 plane0 分解后会以黑白图像显现


总之,因为 LSB 隐写最隐蔽、最常用,而 plane0 正是最低有效位所在的平面,所以优先查看三原色的 plane0 最容易发现隐藏信息。

相关推荐
百***464512 小时前
Java进阶-在Ubuntu上部署SpringBoot应用
java·spring boot·ubuntu
serve the people12 小时前
Prompts for Chat Models in LangChain
java·linux·langchain
一叶飘零_sweeeet12 小时前
不止于 API 调用:解锁 Java 工具类设计的三重境界 —— 可复用性、线程安全与性能优化
java·工具类
A阳俊yi14 小时前
Spring Data JPA
java·开发语言
小王不爱笑13214 小时前
Spring AOP(AOP+JDBC 模板 + 转账案例)
java·后端·spring
遇印记14 小时前
蓝桥java蜗牛
java·学习·蓝桥杯
m0_5656111314 小时前
Java-泛型
java·windows
张np14 小时前
java基础-集合接口(Collection)
java·开发语言
jakeswang14 小时前
ServletLess架构简介
java·后端·servletless
搬山境KL攻城狮15 小时前
maven 私服上传jar
java·maven·jar