Java程序员_编程开发学习笔记_网站安全运维教程_渗透技术教程

2023 宁波天一永安杯 MISC 进阶题解:PDF 隐写与 binwalk 分析实战

阿贵
1天前发布 /正在检测是否收录...
温馨提示:
本文最后更新于2026年04月16日,已超过1天没有更新,若内容或图片失效,请留言反馈。

2023 宁波天一永安杯 MISC 进阶题解:PDF 隐写与 binwalk 分析实战

一、题目背景

  • 赛事:宁波天一·永安杯 2023
  • 题目类型:MISC(隐写术·PDF 隐写)
  • 核心线索:图片文件 image.png 包含隐藏 PDF 数据
  • 目标:从图片中提取隐写的 PDF 信息,解码得到 Flag

二、解题思路与核心分析

1. 初步检测:binwalk 挖掘隐藏数据

面对未知格式的图片文件,首先使用 binwalk 工具进行深度扫描,它能识别文件中隐藏的其他文件格式、压缩包或数据段,是隐写分析的第一步核心工具。

执行扫描命令:

binwalk image.png

mo1d6wkz.png

扫描结果关键信息如下:

十进制(DECIMAL)十六进制(HEXADECIMAL)描述(DESCRIPTION)
00x0PNG image, 1200 x 1200, 8-bit/color RGBA, non-interlaced
1190x77Zlib compressed data, best compression
666080x10430PDF document, version: "1.3"

关键结论
扫描结果明确显示,图片文件中隐藏了一个 版本为 1.3 的 PDF 文档,其起始偏移量为十六进制 0x10430(十进制 66608)。这说明 Flag 并非直接隐藏在图片 LSB 中,而是以 PDF 格式封装在图片尾部,属于复合格式隐写

2. 数据提取:foremost 分离隐写文件

确定存在隐藏 PDF 后,使用 foremost 工具按文件格式分离数据。foremost 会根据扫描到的文件头/尾,自动提取独立的文件并保存。

执行提取命令:

foremost image.png

执行完成后,会在当前目录生成 output/ 文件夹,其中包含分离出的 PDF 文件(通常位于 output/pdf/ 目录下)。

3. 隐写验证:提取 PDF 为空白的原因分析

直接打开提取出的 PDF 文件,会发现显示为空白。这是 CTF 隐写题的常见套路:

  • PDF 本身存在,但内容被加密/编码,或仅包含隐藏数据段
  • 常规 PDF 阅读器无法直接读取其中的隐写信息,需要通过在线转换工具或专业脚本解码

4. 核心解码:PDF 转 TXT 提取 Flag

针对空白 PDF 的隐写场景,使用专业的 PDF 转 TXT 工具提取隐藏文本。这里选择在线工具 PDF24 Toolshttps://tools.pdf24.org/zh/pdf-to-txt),操作流程如下:

  1. 打开上述在线工具,上传提取到的 PDF 文件
  2. 选择「PDF 转 TXT」功能,执行转换
  3. 下载转换后的 TXT 文件,打开即可看到隐藏的 Flag

解码结果

flag{625d7f13d1646c3ab86be95a6ee05dd9}

三、核心技术知识点总结

1. 复合隐写的检测与处理

  • binwalk:万能文件格式分析工具,支持扫描图片/音频/视频中隐藏的任意格式文件(PDF/ZIP/EXE 等)
  • foremost:文件分离工具,配合 binwalk 结果,可批量提取隐藏文件
  • 适用场景:图片中隐藏文档、文档中隐藏图片、音频中隐藏压缩包等复合隐写场景

2. PDF 隐写的常见类型与解决方法

隐写类型特征解决方法
空白 PDF 含隐写文本打开 PDF 无内容,仅含隐藏数据使用 PDF 转 TXT 工具提取文本
PDF 加密打开提示输入密码尝试字典爆破(John the Ripper)、弱口令破解
PDF 标签隐写文档正常,但元数据含 Flag查看 PDF 属性(元数据/注释)
PDF 图层隐写仅底层可见,表层空白使用 Photoshop 等工具查看图层

3. 常用隐写工具组合

工具类型工具名称适用场景
扫描工具binwalk检测文件中隐藏的任意格式数据
提取工具foremost按格式分离文件中的隐藏数据
解码工具zsteg检测 PNG/BMP 图片的 LSB 隐写
在线工具PDF24处理 PDF 隐写、格式转换

四、完整解题命令与操作流程

1. 环境准备(Kali Linux)

# 安装必要工具(若未安装)
apt install binwalk foremost -y

2. 核心操作步骤

# 1. 扫描图片中的隐藏数据
binwalk image.png

# 2. 分离提取隐藏的 PDF 文件
foremost image.png

# 3. 进入输出目录查看提取结果
cd output/pdf/
ls  # 查看提取出的 PDF 文件(如 00000001.pdf)

3. 在线解码操作

  1. 访问:https://tools.pdf24.org/zh/pdf-to-txt
  2. 上传 output/pdf/ 目录下的 PDF 文件
  3. 执行转换并下载 TXT 文件
  4. 打开 TXT 文件,复制其中的 Flag

五、最终 Flag

flag{625d7f13d1646c3ab86be95a6ee05dd9}

六、拓展与避坑指南

1. 避坑要点

  • 若 foremost 提取的 PDF 仍为空,可尝试使用 binwalk -D 'pdf:application/pdf' image.png -O extracted_pdf/ 命令,精准提取 PDF 数据
  • 在线工具解码失败时,可使用本地工具(如 pdftotext 命令)转换:pdftotext extracted_pdf/00000001.pdf output.txt,再查看 output.txt

2. 拓展学习

  • 学习 binwalk 的高级用法:binwalk -E image.png 可视化文件结构、binwalk -dd "pdf" image.png 仅提取 PDF
  • 了解其他隐写类型:图片 Steg 隐写、音频 LSB 隐写、文档元数据隐写等

喜欢就支持一下吧
点赞 1 分享 收藏
评论 抢沙发
OωO
取消 登录评论