📌 题目信息
| 题目名称 | [GUET-CTF2019]soul sipse |
| 题目来源 | BUUCTF(GUET-CTF 2019) |
| 题目类型 | MISC(杂项) |
| 子分类 | 音频隐写 / 文件修复 / Unicode编码 |
| 考点 | Steghide隐写、PNG文件头修复、Unicode解码 |
| 难度 | ⭐⭐ |
| 最终 Flag | flag{5304} |
🛠️ 使用工具
- Steghide —— 音频文件隐写提取
- 010 Editor —— 十六进制查看与文件头修复
- 在线Unicode解码工具 —— 如 https://tool.chinaz.com/tools/unicode.aspx
📝 解题思路
题目名为“soul sipse”,附件是一个 .wav 音频文件。用 Audacity 打开听不出明显异常,用 binwalk 也分离不出东西——这时需要考虑 Steghide 隐写(Steghide 支持 WAV 格式的隐写)。
第 1 步:使用 Steghide 提取音频中的隐藏文件
在 Kali Linux 中使用 Steghide 分析 out.wav 文件:
# 查看音频中是否隐藏了文件
steghide info out.wav
# 提取隐藏文件(无需密码,直接回车)
steghide extract -sf out.wav

执行后成功提取出 download.txt 文件。
查看 download.txt 内容,发现里面是一个腾讯微云分享链接:
https://share.weiyun.com/5wVTIN3

第 2 步:下载图片并修复文件头
访问该链接,从腾讯微云下载一张图片 GUET.png。
打开图片时无法正常显示。用 010 Editor 打开该图片,发现 PNG 文件头被篡改。
正确的 PNG 文件头应为:
89 50 4E 47

将文件开头的错误字节修改为 89 50 4E 47,保存后图片即可正常浏览。
⚠️ 注意:PNG 文件头固定为 89 50 4E 47 0D 0A 1A 0A,但最关键的标识是前 4 字节 89 50 4E 47。修复时务必确认修改位置正确。
第 3 步:获取图片中的 Unicode 编码
修复后的图片中显示了一段Unicode编码的文本:
\\u0034\\u0030\\u0037\\u0030\\u000d\\u000a\\u0031\\u0032\\u0033\\u0034\\u000d\\u000a

第 4 步:Unicode 解码
将上述 Unicode 编码粘贴到在线Unicode解码工具中进行解码。
Pasted image 20260718144052.png
解码后得到:
4070
1234
第 5 步:相加得到 Flag
将解码得到的两个数字相加:
4070 + 1234 = 5304
这里之所以会想到相加,是多次尝试 + 观察规律的结果,因为题干没有给别的算法提示,而竖排两个数字最自然的联想就是“加法竖式”,且试出来后结果(5304)能完美契合 Flag 的提交要求。
还可以对这两个数字进行常见的二元运算尝试:
- 拼接:40701234(提交失败或不符逻辑)
- 相减:4070 – 1234 = 2836
- 异或(XOR):4070 ^ 1234 = 21060(数字过长,不像是简单的 4 位 Flag)
- 相加:4070 + 1234 = 5304
其实这里也没有其他原因,就是出题人当时想着要相加的。
按题目要求包上 flag{} 提交。
🏁 最终 Flag
flag{5304}
网硕互联帮助中心





评论前必须登录!
注册