CTF 图片隐写完整总结
2026/6/11 21:30:23 网站建设 项目流程

# CTF 图片隐写完整总结(Misc高频考点)

主流图片格式:`png/jpg/gif/bmp/webp`,隐写分为**文件结构隐写、像素数据隐写、附加数据隐写、脑洞类隐写**四大类,附识别特征、工具、解题套路。

## 一、基础快速检查(拿到图片第一步必做)

### 1. 查看文件附加数据(最基础)

#### (1)字符串提取 strings

适用:所有图片,图片尾部追加文本/flag/密文

- 命令:

```bash

strings test.png

strings test.jpg > out.txt

```

#### (2)binwalk 分离内嵌文件(最高频)

原理:一张图里藏 zip/rar/压缩包/另一张图片/elf

```bash

# 自动提取

binwalk -e test.png

# 仅扫描不提取

binwalk test.png

```

特征:binwalk输出出现 `zip archive` `png image` `7-zip` 等。

#### (3)exiftool EXIF元数据隐写

图片拍摄信息、注释、作者栏藏flag

```bash

exiftool test.jpg

```

特征:Comment、UserComment、Artist字段有密文。

### 2. 文件宽高篡改(PNG经典坑)

png文件尾部IHDR块存储宽高,人为修改高度/宽度,图片正常预览残缺,完整数据存在文件里。

工具:

- pngcheck 校验png结构

```bash

pngcheck -v test.png

```

修复:010 Editor / StegSolve 修改宽高,重新保存出完整图。

## 二、像素LSB隐写(CTF图片隐写核心)

### 原理

图像每个RGB通道像素最后1/2位存储二进制数据,肉眼无法分辨颜色变化,提取低位拼接得到flag/文件。

### 适用格式:png、bmp(无压缩,LSB最多);jpg压缩后很少LSB

### 工具

1. StegSolve(Windows/Java,图形化首选)

Analyse → Data Extract 提取R/G/B/RG/BG/全部通道LSB

2. zsteg(Linux/mac,png/bmp专用一键LSB)

```bash

zsteg test.png

# 提取全部数据输出文件

zsteg -a test.png -o out.bin

```

3. Python脚本手动提取LSB(手写题)

### 变种

- LSB隐写后是base64/十六进制密文,解码出flag

- 分通道隐藏:只藏红色通道最低位

## 三、GIF动图专属隐写

1. **逐帧分离**

工具:steghide、ffmpeg、GIMP

```bash

# 分离gif每一帧

ffmpeg -i test.gif frame_%d.png

```

套路:每一帧像素一个字符、帧数对应数字、帧间差值LSB。

2. GIF注释块、调色板隐写

3. 延迟时间脑洞:每一帧延时数字拼接成密码。

## 四、通用隐写工具(一键解密类)

### 1. steghide(经典,需要密码/空密码)

支持jpg/bmp/wav,把文件嵌入图片

```bash

# 无密码尝试提取

steghide extract -sf test.jpg

# 有密码

steghide extract -sf test.jpg -p 密码

```

常见坑:密码藏在EXIF、图片字符串、题目提示。

### 2. outguess

老牌图片隐写,jpg专用,用法同steghide。

### 3. zbarimg 二维码/条形码隐写

图片内嵌二维码、条形码,扫描出密文

```bash

zbarimg test.png

```

变种:多张切片拼图成二维码、图片角落微小二维码。

## 五、文件结构类隐写

### 1. 图片尾部追加压缩包(binwalk必考)

png/jpg末尾拼接zip,直接改后缀`.zip`解压,或binwalk -e分离。

判断:文件大小异常偏大、strings能看到`PK`(zip头)。

### 2. 分离通道/透明通道(PNG Alpha通道)

PNG带透明Alpha第四通道,数据藏在透明度,StegSolve Data Extract勾选Alpha提取。

### 3. JPG特有:APP段隐写、DCT系数隐写

工具:jsteg(jpg LSB专用)

```bash

jsteg reveal test.jpg out.txt

```

## 六、脑洞视觉类隐写(Misc趣味题)

1. **色差/分层看图**

StegSolve → Image Combiner,两张图片异或XOR得到flag;

红蓝3D图:红绿通道分离查看文字。

2. **图片翻转、旋转、镜像**

上下翻转、90/180度旋转后出现文字。

3. **像素坐标**

特殊颜色像素坐标(x,y)拼接数字、字母。

4. **像素长度/色块计数**

黑白条纹,条纹长度代表摩斯、二进制。

5. **高低位分层**

StegSolve Brightness/Threshold调节亮度阈值,隐藏文字显现。

## 七、特殊小众隐写

1. **零宽字符隐写**

图片注释、EXIF、内嵌文本藏零宽不可见字符。

2. **WebP隐写**

zsteg、webp专用解析工具,国内考题较少。

3. **像素异或加密**

两张图片像素一一异或,需要异或脚本解密。

4. **FFT频域隐写**

StegSolve FFT功能,频谱图出现文字/二维码(难度偏高)。

5. **文字图片点阵**

图片由黑白小点组成,8点一组二进制转ASCII。

## 八、标准解题流程(拿到图片按顺序走,不漏考点)

1. 基础信息收集

`strings 图` → `exiftool 图` → `binwalk 图`

2. 检查是否内嵌文件

binwalk -e 分离压缩包/子图片

3. 像素隐写检测

png/bmp:zsteg;jpg:jsteg;通用图形化StegSolve

4. 校验文件结构

pngcheck检查宽高、文件损坏修复

5. 视觉脑洞处理

调亮度、旋转、异或、分离通道、FFT频谱

6. 扫描条码二维码 zbarimg

7. 工具爆破提取 steghide/outguess

## 九、工具清单汇总

| 工具 | 用途 | 适用格式 |

|------|------|----------|

| binwalk | 分离内嵌文件、扫描文件头 | 全部图片 |

| exiftool | 读取EXIF元数据 | jpg/png |

| zsteg | LSB一键提取 | png/bmp |

| StegSolve | 可视化隐写分析、通道/FFT/异或 | 全部 |

| steghide | 文件嵌入提取 | jpg/bmp |

| jsteg | JPG像素隐写 | jpg |

| pngcheck | PNG结构校验、宽高错误修复 | png |

| zbarimg | 识别二维码/条码 | 全部 |

| ffmpeg | GIF拆分帧、图片格式转换 | gif |

| 010 Editor | 十六进制修改图片块、修复文件 | 全部 |

## 十、常见坑总结

1. PNG宽高不一致,预览残缺,改宽高才出完整信息;

2. LSB提取出base64、hex,需要二次解码;

3. steghide需要密码,密码藏在图片元数据或题目描述;

4. zip内嵌有密码,密码在图片LSB/EXIF;

5. GIF单帧信息量小,必须批量拆分逐帧分析;

6. JPG压缩算法破坏LSB,极少直接LSB,优先jsteg/steghide。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询