📌 题目信息
| 项目 | 内容 |
|---|---|
| 题目名称 | MRCTF2020Unravel!! |
| 题目来源 | BUUCTF(BUUOJ) |
| 题目类型 | AES / MISC |
| 子分类 | 文件隐写 + AES解密 + 音频LSB隐写 |
| 考点 | 文件末尾隐写、PNG隐写分离、AES解密、SilentEye音频隐写 |
| 难度 | ⭐⭐ |
| 最终 Flag | flag{Th1s_is_the_3nd1n9} |

🛠️ 使用工具
- 010 Editor(或任意十六进制编辑器)------查看文件末尾数据
- binwalk / foremost------分离 PNG 中隐藏的 ZIP 压缩包
- AES 在线解密工具 (如
https://www.jijie.ink/tool/aes) - SilentEye ------音频 LSB 隐写提取工具(下载地址:https://sourceforge.net/projects/silenteye/)
📝 解题思路
这道题是典型的多步骤套娃题:WAV 文件尾部藏密文 → PNG 图片藏密钥 → AES 解密得 ZIP 密码 → 解压后再用音频隐写工具提取 Flag。
第 1 步:查看 WAV 文件尾部,获取 AES 密文
题目给了三个文件:
Look_at_the_file_ending.wav(音频文件)JM.png(图片文件)win-win.zip(加密的压缩包)
文件名 Look_at_the_file_ending 已经直白地提示了:看文件末尾。
用 010 Editor(或其他十六进制编辑器)打开 Look_at_the_file_ending.wav,翻到文件末尾,可以看到一串 Base64 编码的密文:

key=U2FsdGVkX1/nSQN+hoHL8OwV9iJB/mSdKk5dmusulz4=
尝试对它进行 Base64 解码,解码后的数据以 Salted 开头------这和上一题 [SUCTF 2019]Game 的情况类似,说明这是一段经过 OpenSSL 对称加密的密文,加密算法很可能是 AES 或 DES/3DES。
⚠️ 注意 :密文以
Salted开头只是表明它是 OpenSSL 工具加密的,不能直接确定具体是 AES 还是 DES/3DES。需要结合后续找到的密钥来尝试判断。
第 2 步:分析 PNG 图片,分离出隐藏的 ZIP 并获取密钥
现在有密文但没有密钥,密钥很可能藏在 JM.png 里。
用 binwalk 或 foremost 分析 JM.png,会发现图片末尾隐藏了一个 ZIP 压缩包:
binwalk JM.png

分离出 ZIP 文件:
foremost JM.png

解压这个 ZIP,得到一张名为 aes.png 的图片。打开图片,上面写着一个单词:
Tokyo

第 3 步:AES 解密,得到 ZIP 压缩包密码
⚠️ 注意 :这里用 DES/3DES 解不出来,用 AES 才能成功**(当然这里需要尝试)** 。如果解密失败,可以尝试 AES 的不同模式(如 CBC、ECB),本题标准解法使用的是 AES。
现在我们有了:
- 密文 :
U2FsdGVkX1/nSQN+hoHL8OwV9iJB/mSdKk5dmusulz4= - 密钥 :
Tokyo
打开 AES 在线解密工具(如 https://www.jijie.ink/tool/aes),选择解密模式:
- 加密算法:AES
- 密钥 :
Tokyo - 输入格式:Base64(因为密文是 Base64 编码的)

解密后得到明文:
CCGandGulu
这就是 win-win.zip 的解压密码。
第 4 步:解压 ZIP,用 SilentEye 提取音频隐写
用密码 CCGandGulu 解压 win-win.zip,得到一个名为 Ending.wav 的音频文件。
用常规方式(如 Audacity 看频谱、010 Editor 看文件尾)分析这个 WAV 文件,都没有发现明显线索------说明信息是通过 LSB 音频隐写 隐藏的。
打开 SilentEye 工具:
- 选择
Ending.wav文件 - 点击 "Decode"(解码)
- 工具会自动提取出隐藏的信息
- 最终得到 Flag:

MRCTF{Th1s_is_the_3nd1n9}
🏁 最终 Flag
⚠️ 注意 :题目要求将
MRCTF{}替换为flag{}后提交。
flag{Th1s_is_the_3nd1n9}