CTF-MISC隐写总结
字数 2233 2025-08-09 19:14:07

CTF-MISC隐写技术全面指南

前言

本文系统总结了CTF比赛中MISC(杂项)类题目涉及的各类隐写技术,涵盖图片、音频、视频、文本等多种文件类型的隐写与分析方法,旨在为CTF参赛者提供全面的技术参考。

图片隐写技术

1. Exif信息隐写

Exif(Exchangeable Image File Format)是数码照片的元数据标准,可记录拍摄参数等信息。

分析方法

  • Linux工具:exiftool
  • Windows:图片属性查看或使用010 Editor/WinHex等工具搜索关键字(如flag、ctf)
  • 注意检查图片属性的备注字段

2. GIF隐写

GIF动画可能将关键信息隐藏在某一帧中。

分析工具

  • Stegsolve:可逐帧查看GIF内容
  • 分析方法:检查每一帧图像,寻找异常或隐藏信息

3. 图片修复技术

文件头修复

常见图片格式的文件头特征:

  • JPEG: FF D8 FF
  • PNG: 89 50 4E 47
  • GIF: 47 49 46 38
  • BMP: 42 4D

修复方法
使用010 Editor或WinHex以16进制方式打开文件,在文件起始处添加正确的文件头

CRC校验修复

工具:TweakPNG

  • 修改CRC值后工具会提示正确的宽高对应的CRC值
  • 确保宽高正确的情况下修正CRC值

宽高修复

PNG格式的宽高信息位于文件特定位置:

  • 宽度:第16-19字节
  • 高度:第20-23字节

检测方法

  • Windows可打开但Linux无法打开的图片可能存在宽高问题
  • CRC爆破脚本(示例):
import binascii
import struct

crcbp = open("flag.png","rb").read()
for i in range(1024):
    for j in range(1024):
        data = crcbp[12:16] + struct.pack('>i',i) + struct.pack('>i',j) + crcbp[24:29]
        crc32 = binascii.crc32(data) & 0xffffffff
        if crc32 == 0x4d614986:  # 目标CRC值
            print(i, j, hex(i), hex(j))

4. LSB隐写

最低有效位(LSB)隐写通过修改像素值最低位来隐藏信息。

分析工具

  • Stegsolve:通过Analyse→Data Extract功能分析
  • zsteg工具(Kali安装:gem install zsteg,使用:zsteg filename)

5. 相同图片隐写

盲水印

工具:使用BlindWaterMark工具包

图像运算

使用Stegsolve进行图像运算(AND/OR/XOR等):

  • Image→Combiner功能
  • 注意两张图片的打开顺序会影响运算结果

6. 文件分离

常用工具

  1. binwalk:
    • 分析:binwalk filename
    • 分离:binwalk -e filename
  2. foremost:
    • formost filename -o 输出目录
  3. dd命令:
    • 当自动分离失败时手动使用

提示:多种工具结合使用,单一工具可能无法完全分离

7. 二维码处理

反色处理

  • 使用画图工具选中二维码后右键选择"反色"
  • 当二维码定位点为白色时可能需要反色

8. 其他图片隐写工具

JPG专用工具:

  1. steghide:
    • 隐藏文件:steghide embed -cf 1.jpg -ef 1.txt
    • 查看信息:steghide info 1.jpg
    • 提取文件:steghide extract -sf 1.jpg
  2. stegdetect:
    • 检测JSteg、JPHide等工具的隐写:stegdetect xxx.jpg
  3. stegbreak:
    • 密码爆破:stegbreak.exe -r rules.ini -f password.txt p -c hide.jpg
  4. silenteye:
    • 支持多种隐写分析

音频隐写技术

1. MP3隐写

分析工具

  1. Audacity:
    • 检查音频波形中的摩斯电码
    • 进行频谱分析(如"lookme"、"用眼睛去倾听"等题目)
  2. MP3Stego:
    • 使用教程参考相关文档
    • 尝试弱口令或题目名称作为密码

2. WAV隐写

工具:silenteye

  • 拖入文件后点击Decode
  • 可能需要输入密码或选择正确的Type

视频隐写技术

MP4隐写

工具:ffmpeg

  • 按帧提取视频中的隐藏图像:
    ffmpeg -i input.mp4 -vf select='eq(n,帧号)' -vsync vfr output_%d.png
    
  • 详细使用参考ffmpeg文档

文本隐写技术

1. Word文档隐写

白色文字

  • 全选文本(Ctrl+A)后更改字体颜色
  • 检查隐藏文字:右键→字体→取消"隐藏"选项

2. PDF隐写

工具:wbs43open

  1. 选择Decode功能
  2. 设置文件类型和路径
  3. 可尝试空密码
  4. 设置输出路径

3. HTML隐写(snow隐写)

解密网站:http://fog.misty.com/perry/ccs/snow/snow/snow.html

  • 需要提供key才能解密

其他隐写技术

1. Base64隐写

  • 参考Tr0y的文章:https://www.tr0y.wang/2017/06/14/Base64steg/

2. 零宽度字符隐写

  • 不可见的Unicode字符,需特殊工具检测
  • 参考:http://www.ga1axy.top/index.php/archives/20/

3. NTFS数据流隐写

创建echo abcdefg>>123.txt:222.txt
检测方法

  1. 命令:notepad 123.txt:222.txt
  2. 工具:NtfsStreamsEditor(需管理员权限)

总结

本文涵盖了CTF-MISC比赛中常见的隐写技术和方法,掌握这些技术需要:

  1. 熟悉各种文件格式的结构
  2. 熟练使用相关分析工具
  3. 保持思维灵活性,尝试多种可能性
  4. 注意工具的组合使用,单一工具可能无法解决问题

建议在实际比赛中多积累经验,遇到新型隐写技术及时补充知识库。

CTF-MISC隐写技术全面指南 前言 本文系统总结了CTF比赛中MISC(杂项)类题目涉及的各类隐写技术,涵盖图片、音频、视频、文本等多种文件类型的隐写与分析方法,旨在为CTF参赛者提供全面的技术参考。 图片隐写技术 1. Exif信息隐写 Exif(Exchangeable Image File Format)是数码照片的元数据标准,可记录拍摄参数等信息。 分析方法 : Linux工具: exiftool Windows:图片属性查看或使用010 Editor/WinHex等工具搜索关键字(如flag、ctf) 注意检查图片属性的备注字段 2. GIF隐写 GIF动画可能将关键信息隐藏在某一帧中。 分析工具 : Stegsolve:可逐帧查看GIF内容 分析方法:检查每一帧图像,寻找异常或隐藏信息 3. 图片修复技术 文件头修复 常见图片格式的文件头特征: JPEG: FF D8 FF PNG: 89 50 4E 47 GIF: 47 49 46 38 BMP: 42 4D 修复方法 : 使用010 Editor或WinHex以16进制方式打开文件,在文件起始处添加正确的文件头 CRC校验修复 工具 :TweakPNG 修改CRC值后工具会提示正确的宽高对应的CRC值 确保宽高正确的情况下修正CRC值 宽高修复 PNG格式的宽高信息位于文件特定位置: 宽度:第16-19字节 高度:第20-23字节 检测方法 : Windows可打开但Linux无法打开的图片可能存在宽高问题 CRC爆破脚本(示例): 4. LSB隐写 最低有效位(LSB)隐写通过修改像素值最低位来隐藏信息。 分析工具 : Stegsolve:通过Analyse→Data Extract功能分析 zsteg工具(Kali安装: gem install zsteg ,使用: zsteg filename ) 5. 相同图片隐写 盲水印 工具 :使用 BlindWaterMark 工具包 图像运算 使用Stegsolve进行图像运算(AND/OR/XOR等): Image→Combiner功能 注意两张图片的打开顺序会影响运算结果 6. 文件分离 常用工具 : binwalk: 分析: binwalk filename 分离: binwalk -e filename foremost: formost filename -o 输出目录 dd命令: 当自动分离失败时手动使用 提示 :多种工具结合使用,单一工具可能无法完全分离 7. 二维码处理 反色处理 : 使用画图工具选中二维码后右键选择"反色" 当二维码定位点为白色时可能需要反色 8. 其他图片隐写工具 JPG专用工具: steghide: 隐藏文件: steghide embed -cf 1.jpg -ef 1.txt 查看信息: steghide info 1.jpg 提取文件: steghide extract -sf 1.jpg stegdetect: 检测JSteg、JPHide等工具的隐写: stegdetect xxx.jpg stegbreak: 密码爆破: stegbreak.exe -r rules.ini -f password.txt p -c hide.jpg silenteye: 支持多种隐写分析 音频隐写技术 1. MP3隐写 分析工具 : Audacity: 检查音频波形中的摩斯电码 进行频谱分析(如"lookme"、"用眼睛去倾听"等题目) MP3Stego: 使用教程参考相关文档 尝试弱口令或题目名称作为密码 2. WAV隐写 工具 :silenteye 拖入文件后点击Decode 可能需要输入密码或选择正确的Type 视频隐写技术 MP4隐写 工具 :ffmpeg 按帧提取视频中的隐藏图像: 详细使用参考ffmpeg文档 文本隐写技术 1. Word文档隐写 白色文字 全选文本(Ctrl+A)后更改字体颜色 检查隐藏文字:右键→字体→取消"隐藏"选项 2. PDF隐写 工具 :wbs43open 选择Decode功能 设置文件类型和路径 可尝试空密码 设置输出路径 3. HTML隐写(snow隐写) 解密网站 :http://fog.misty.com/perry/ccs/snow/snow/snow.html 需要提供key才能解密 其他隐写技术 1. Base64隐写 参考Tr0y的文章:https://www.tr0y.wang/2017/06/14/Base64steg/ 2. 零宽度字符隐写 不可见的Unicode字符,需特殊工具检测 参考:http://www.ga1axy.top/index.php/archives/20/ 3. NTFS数据流隐写 创建 : echo abcdefg>>123.txt:222.txt 检测方法 : 命令: notepad 123.txt:222.txt 工具:NtfsStreamsEditor(需管理员权限) 总结 本文涵盖了CTF-MISC比赛中常见的隐写技术和方法,掌握这些技术需要: 熟悉各种文件格式的结构 熟练使用相关分析工具 保持思维灵活性,尝试多种可能性 注意工具的组合使用,单一工具可能无法解决问题 建议在实际比赛中多积累经验,遇到新型隐写技术及时补充知识库。