# CTF 图片隐写完整总结Misc高频考点主流图片格式png/jpg/gif/bmp/webp隐写分为**文件结构隐写、像素数据隐写、附加数据隐写、脑洞类隐写**四大类附识别特征、工具、解题套路。## 一、基础快速检查拿到图片第一步必做### 1. 查看文件附加数据最基础#### 1字符串提取 strings适用所有图片图片尾部追加文本/flag/密文- 命令bashstrings test.pngstrings test.jpg out.txt#### 2binwalk 分离内嵌文件最高频原理一张图里藏 zip/rar/压缩包/另一张图片/elfbash# 自动提取binwalk -e test.png# 仅扫描不提取binwalk test.png特征binwalk输出出现 zip archive png image 7-zip 等。#### 3exiftool EXIF元数据隐写图片拍摄信息、注释、作者栏藏flagbashexiftool test.jpg特征Comment、UserComment、Artist字段有密文。### 2. 文件宽高篡改PNG经典坑png文件尾部IHDR块存储宽高人为修改高度/宽度图片正常预览残缺完整数据存在文件里。工具- pngcheck 校验png结构bashpngcheck -v test.png修复010 Editor / StegSolve 修改宽高重新保存出完整图。## 二、像素LSB隐写CTF图片隐写核心### 原理图像每个RGB通道像素最后1/2位存储二进制数据肉眼无法分辨颜色变化提取低位拼接得到flag/文件。### 适用格式png、bmp无压缩LSB最多jpg压缩后很少LSB### 工具1. StegSolveWindows/Java图形化首选Analyse → Data Extract 提取R/G/B/RG/BG/全部通道LSB2. zstegLinux/macpng/bmp专用一键LSBbashzsteg test.png# 提取全部数据输出文件zsteg -a test.png -o out.bin3. Python脚本手动提取LSB手写题### 变种- LSB隐写后是base64/十六进制密文解码出flag- 分通道隐藏只藏红色通道最低位## 三、GIF动图专属隐写1. **逐帧分离**工具steghide、ffmpeg、GIMPbash# 分离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 二维码/条形码隐写图片内嵌二维码、条形码扫描出密文bashzbarimg 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系数隐写工具jstegjpg LSB专用bashjsteg 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/bmpzstegjpgjsteg通用图形化StegSolve4. 校验文件结构pngcheck检查宽高、文件损坏修复5. 视觉脑洞处理调亮度、旋转、异或、分离通道、FFT频谱6. 扫描条码二维码 zbarimg7. 工具爆破提取 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/EXIF5. GIF单帧信息量小必须批量拆分逐帧分析6. JPG压缩算法破坏LSB极少直接LSB优先jsteg/steghide。
CTF 图片隐写完整总结
发布时间:2026/6/11 21:30:28
# CTF 图片隐写完整总结Misc高频考点主流图片格式png/jpg/gif/bmp/webp隐写分为**文件结构隐写、像素数据隐写、附加数据隐写、脑洞类隐写**四大类附识别特征、工具、解题套路。## 一、基础快速检查拿到图片第一步必做### 1. 查看文件附加数据最基础#### 1字符串提取 strings适用所有图片图片尾部追加文本/flag/密文- 命令bashstrings test.pngstrings test.jpg out.txt#### 2binwalk 分离内嵌文件最高频原理一张图里藏 zip/rar/压缩包/另一张图片/elfbash# 自动提取binwalk -e test.png# 仅扫描不提取binwalk test.png特征binwalk输出出现 zip archive png image 7-zip 等。#### 3exiftool EXIF元数据隐写图片拍摄信息、注释、作者栏藏flagbashexiftool test.jpg特征Comment、UserComment、Artist字段有密文。### 2. 文件宽高篡改PNG经典坑png文件尾部IHDR块存储宽高人为修改高度/宽度图片正常预览残缺完整数据存在文件里。工具- pngcheck 校验png结构bashpngcheck -v test.png修复010 Editor / StegSolve 修改宽高重新保存出完整图。## 二、像素LSB隐写CTF图片隐写核心### 原理图像每个RGB通道像素最后1/2位存储二进制数据肉眼无法分辨颜色变化提取低位拼接得到flag/文件。### 适用格式png、bmp无压缩LSB最多jpg压缩后很少LSB### 工具1. StegSolveWindows/Java图形化首选Analyse → Data Extract 提取R/G/B/RG/BG/全部通道LSB2. zstegLinux/macpng/bmp专用一键LSBbashzsteg test.png# 提取全部数据输出文件zsteg -a test.png -o out.bin3. Python脚本手动提取LSB手写题### 变种- LSB隐写后是base64/十六进制密文解码出flag- 分通道隐藏只藏红色通道最低位## 三、GIF动图专属隐写1. **逐帧分离**工具steghide、ffmpeg、GIMPbash# 分离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 二维码/条形码隐写图片内嵌二维码、条形码扫描出密文bashzbarimg 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系数隐写工具jstegjpg LSB专用bashjsteg 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/bmpzstegjpgjsteg通用图形化StegSolve4. 校验文件结构pngcheck检查宽高、文件损坏修复5. 视觉脑洞处理调亮度、旋转、异或、分离通道、FFT频谱6. 扫描条码二维码 zbarimg7. 工具爆破提取 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/EXIF5. GIF单帧信息量小必须批量拆分逐帧分析6. JPG压缩算法破坏LSB极少直接LSB优先jsteg/steghide。