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. 文件分离
常用工具:
- 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
- 检测JSteg、JPHide等工具的隐写:
- 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 -i input.mp4 -vf select='eq(n,帧号)' -vsync vfr output_%d.png - 详细使用参考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比赛中常见的隐写技术和方法,掌握这些技术需要:
- 熟悉各种文件格式的结构
- 熟练使用相关分析工具
- 保持思维灵活性,尝试多种可能性
- 注意工具的组合使用,单一工具可能无法解决问题
建议在实际比赛中多积累经验,遇到新型隐写技术及时补充知识库。