news 2026/6/14 3:20:59

从一封神秘邮件到最终Flag:手把手复现BUUCTF『BSidesSF2019』套娃题全流程

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
从一封神秘邮件到最终Flag:手把手复现BUUCTF『BSidesSF2019』套娃题全流程

从一封神秘邮件到最终Flag:手把手复现BUUCTF『BSidesSF2019』套娃题全流程

当你收到一封标题为"bWF0cnlvc2hrYQ=="的神秘邮件时,是否想过这串看似随机的字符背后隐藏着什么?这正是BUUCTF平台BSidesSF2019赛题"matryoshka"(俄罗斯套娃)的精妙之处——层层嵌套的谜题等待被逐一解开。本文将带你完整复现这道经典CTF隐写题的解题全流程,从最初的EML文件分析到最终的Flag获取,每个步骤都配有详细的操作指南和工具使用技巧。

1. 初始文件分析与邮件解密

EML文件是Outlook等邮件客户端使用的标准邮件存储格式。面对题目提供的attachment.eml文件,我们有多种解析方式:

  • 邮件客户端直接查看:使用Outlook、Thunderbird等软件打开
  • 文本编辑器解析:用VS Code/Sublime等查看原始内容
  • 在线解析工具:如EML Viewer等网页工具

关键操作步骤

  1. 用文本编辑器搜索Content-Disposition: attachment定位附件部分
  2. 提取两个关键文件:
    • Matry_Oshka.key(PGP私钥)
    • hack.pgp(加密数据)

在邮件正文的"Face"部分,我们发现一段Base64编码数据。使用 The X在线解码器 解析后,得到一张二维码图片,扫描后获得密码:h4ck_the_plan3t

注意:某些Base64解码器可能无法正确处理邮件中的换行符,建议先清理格式或使用命令行工具:

echo "BASE64内容" | base64 -d > output.png

2. PGP解密与文件提取

获得私钥和密码后,我们需要使用PGP工具解密hack.pgp文件。推荐使用开源工具PGPTool:

  1. 访问 PGPTool官网
  2. 点击"Key ring" → "Import PGP Key"导入Matry_Oshka.key
  3. 输入密码h4ck_the_plan3t
  4. 选择hack.pgp文件进行解密

解密后得到file.bin文件。通过file命令识别文件类型:

file file.bin # 输出:file.bin: data

使用binwalk分析文件结构:

binwalk file.bin # 输出示例: # DECIMAL HEXADECIMAL DESCRIPTION # ------------------------------------------------------------------ # 0 0x0 LZIP compressed data

3. 处理LZIP压缩文件

LZIP是一种不太常见的压缩格式,需要特殊处理:

  1. 用010 Editor打开file.bin
  2. 删除文件头部的10个字节(LZIP魔数)
  3. 保存为file.lz
  4. 使用lzip解压:
lzip -d file.lz

解压后得到file.bin.out,实际是一个PDF文件。重命名后打开,发现是经典的Windows XP默认壁纸"Bliss"。

4. 图片隐写分析

将PDF中的图片导出为bliss.png,使用Stegsolve进行分析:

  1. 打开Stegsolve → "File Format"查看文件结构
  2. 切换到"Image Combiner"模式
  3. 对比原图与题目图片(原图可从 维基媒体 获取)
  4. 在Blue通道发现异常数据,疑似二维码内容

专业技巧:Stegsolve的"Analyse → Data Extract"功能可以快速检查各通道的LSB信息

5. 非标准Base64处理

从图片中提取的数据包含特殊Base64编码:

/Td6WFoAAATm1rRGAgAhARwAAAAQz1jM4ELCAORdABhgwwZfNTLh1bKR4pwkkcJw0DSEZd2BcWATAJkrMgnKT8nBgYQaCPtrzORiOeUVq7DDoe9feCLt9PG-MT9ZCLwmtpdfvW0n17pie8v0h7RS4dO/yb7JHn7sFqYYnDWZere/6BI3AiyraCtQ6qZmYZnHemfLVXmCXHan5fN6IiJL7uJdoJBZC3Rb1hiH1MdlFQ/1uOwaoglBdswAGo99HbOhsSFS5gGqo6WQ2dzK3E7NcYP2YIQxS9BGibr4Qulc6e5CaCHAZ4pAhfLVTYoN5R7l/cWvU3mLOSPUkELK6StPUBd0AABBU17Cf970JQABgALDhQEApzo4PbHEZ/sCAAAAAARZWg==

关键点在于-/字符替换了标准Base64的+/。使用Python处理这种非标编码:

from base64 import b64decode base64data = "/Td6WFoAAATm1rRGAgAhARwAAAAQz1jM4ELCAORdABhgwwZfNTLh1bKR4pwkkcJw0DSEZd2BcWATAJkrMgnKT8nBgYQaCPtrzORiOeUVq7DDoe9feCLt9PG-MT9ZCLwmtpdfvW0n17pie8v0h7RS4dO/yb7JHn7sFqYYnDWZere/6BI3AiyraCtQ6qZmYZnHemfLVXmCXHan5fN6IiJL7uJdoJBZC3Rb1hiH1MdlFQ/1uOwaoglBdswAGo99HbOhsSFS5gGqo6WQ2dzK3E7NcYP2YIQxS9BGibr4Qulc6e5CaCHAZ4pAhfLVTYoN5R7l/cWvU3mLOSPUkELK6StPUBd0AABBU17Cf970JQABgALDhQEApzo4PbHEZ/sCAAAAAARZWg==" with open('flag.7z','wb') as f: f.write(b64decode(base64data, altchars='-/'))

参数说明

  • altchars='-/'表示用-替换+,用/替换标准Base64中的/(实际是保持不变)
  • 该方法要求altchars必须至少包含两个字符

6. 最终Flag提取

解压得到的flag.7z文件后,使用CyberChef或hex编辑器查看内容。最终获取Flag:

flag{delat_iz_muhi_slona}

完整工具链总结

步骤工具关键参数/技巧
邮件解析Outlook/文本编辑器查找Content-Disposition
Base64解码the-x.cn注意换行符处理
PGP解密PGPTool密码h4ck_the_plan3t
文件分析binwalk/010 EditorLZIP头删除
图片隐写StegsolveBlue通道分析
非标Base64Pythonaltchars参数
最终解码CyberChef自动识别文件类型

这道题的精妙之处在于它模拟了真实的数字取证场景——从邮件分析开始,经过多重编码转换和隐写技术,最终揭露隐藏信息。在实际操作中,可能会遇到各种环境问题,比如:

  • PGPTool的Java环境兼容性问题
  • lzip工具在Windows下的安装配置
  • Stegsolve的Java版本要求
  • Python处理二进制数据时的编码错误

建议在Linux环境下使用虚拟机或Docker容器搭建统一的CTF解题环境,避免因系统差异导致的问题。对于想深入钻研的玩家,可以尝试用Python自动化部分流程,比如将Stegsolve的分析过程用OpenCV重现,或编写完整的解题脚本。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/14 3:20:58

WinDiskWriter:macOS上一键制作Windows启动盘的终极解决方案

WinDiskWriter:macOS上一键制作Windows启动盘的终极解决方案 【免费下载链接】windiskwriter 🖥 Windows Bootable USB creator for macOS. 🛠 Patches Windows 11 to bypass TPM and Secure Boot requirements. 👾 UEFI & Le…

作者头像 李华
网站建设 2026/6/14 3:20:57

掌握网易云音乐个性化体验:BetterNCM安装器的完全配置指南

掌握网易云音乐个性化体验:BetterNCM安装器的完全配置指南 【免费下载链接】BetterNCM-Installer 一键安装 Better 系软件 项目地址: https://gitcode.com/gh_mirrors/be/BetterNCM-Installer BetterNCM安装器是一款专为网易云音乐用户设计的插件管理工具&am…

作者头像 李华
网站建设 2026/6/14 3:21:00

Python亚马逊SP-API集成实战指南:5步构建高效电商自动化系统

Python亚马逊SP-API集成实战指南:5步构建高效电商自动化系统 【免费下载链接】python-amazon-sp-api Python wrapper to access the amazon selling partner API 项目地址: https://gitcode.com/gh_mirrors/py/python-amazon-sp-api Python亚马逊SP-API集成是…

作者头像 李华
网站建设 2026/6/14 3:21:15

UFLO Java流程引擎:企业级工作流自动化终极解决方案

UFLO Java流程引擎:企业级工作流自动化终极解决方案 【免费下载链接】uflo UFLO是一款基于Spring的纯Java流程引擎,支持并行、动态并行、串行、会签等各种流转方式。 项目地址: https://gitcode.com/gh_mirrors/uf/uflo UFLO是一款基于Spring框架…

作者头像 李华