0x01 题目背景
前不久参加某网络安全竞赛,在上午的理论考试和CTF中被虐的体无完肤,不仅因为参赛者的实力强大,更是因为出题者的脑袋“骨骼精奇”,很多题目的解答思路都很新奇。
其中有一道misc类型的题目被我钻研了很久,但是最后比赛结束了也没有找出flag,心里实在是不爽。于是在比赛结束的当晚我继续钻研本题,最终找到了隐藏的flag。
0x02 文件分析
首先题目没有任何提示,只有一个下载附件的超链接,下载完附件后发现是一个MKV格式的视频文件,文件的名字叫“funny_video”。
图2.1 题目提供的视频文件
看到是MKV格式的文件,我首先想到的就是flag会不会隐藏在视频的某一帧中(虽然希望很渺茫),所以马上打开视频先快速看一遍。结果发现是一个电影的片段,乍看上去没有任何异常。接着我就开始一帧帧地看,也没有任何发现,果然出题者不会那么容易把flag交出来。
图2.2 视频的截图
然后我用视频编辑软件和播放器查看这个视频的相关属性,也是没有发现异常,各种编码信息看起来是正常的,当然也有可能是我对MKV格式的不熟悉导致未发现异常。
图2.3 视频的编码信息
把这个视频文件直接丢到WinHex中分析一下,也没有什么有用的发现,甚至在WinHex中打开了另一个普通的MKV文件进行前几行的编码对比,但还是没有找到与flag有关的信息。
图2.4 WinHex的截图
到这里比赛已经进行到了一大半,我暂时放下本题去分析其他的题目。不久后我又打开这个文件继续分析,刚刚从图像、视频编码信息和WinHex上都没有突破,那么flag会不会在音频中呢?因为之前的操作我都是关闭了电脑的声音,根本没想过本题与视频的声音有关。我马上打开电脑的声音认真听了几遍视频里播放出的声音,都是正常的电影的对白和背景音乐,没有听出异常的地方。
分析到了这里还是没有找到flag的突破口,我已经是非常沮丧了,比赛也临近结束了。可是我还是不愿意放弃,在播放器中查看一切与该视频有关的信息,终于我发现了一个奇怪的地方,就是这个视频有两个音轨!
图2.5 视频文件中的两个音轨
怀揣着激动的心情选择了第二个音轨,又听了几遍第二个音轨放出的声音,结果跟第一个音轨的声音一样。到这里我基本可以确定flag就是在这个音轨里了,只可惜当时电脑没有分离视频中的音频的软件,而且剩余的时间也不够了,所以最终很遗憾没有提交该题的flag。
0x03 再次出发
当天的比赛结束后一直惦记着这道题,甚至去搜索了与视频有关的writeup,没有搜到相关的文章,但是搜出了一些音频文件隐写题的分析文章。一想到比赛最后发现的双音轨,我决定去试试从音频下手。
我首先下载好MKVToolNix这个软件,这是个功能强大的MKV格式处理软件,具体有哪些功能就不多说了,我这次要用到的功能就是将MKV格式中的音频提取出来。直接把视频文件拖进MKVToolNix中,然后分别将两个音频文件分离出来,准备接下来的音频分析。
图3.1 用MKVToolNix分离音频
打开专门处理音频的软件--Audacity,先把第一个音轨的音频文件拖进Audacity中。不出意外,在波形图、波形(dB)图和频谱图中均未找到flag,也没有发现类似摩斯密码的东西。到这里很明显第二个音轨文件就是突破口。
0x04 突破口
还是在Audacity中打开第二个音轨的音频文件,波形图和波形(dB)图跟第一个音轨的一样,显然flag不在这里。
图4.1 第二个音轨的音频文件的波形图和波形(dB)图
接下来就是频谱图,一打开频谱图就发现了苦苦寻找的flag,虽然没能在比赛中解出该题,但是也算给自己增长了经验,还是有所收获的。
图4.2 藏在频谱图中的flag
0x05 总结
由于之前接触的多媒体文件隐写题较少,而且只见过音频文件的隐写,所以第一次遇到视频文件的隐写题有点力不从心。另一方面也是自己的思维不够开阔,没有及时联想到视频文件中的音频文件也可以分离出来做分析,一看到视频格式的文件就只想到与视频或图像相关的角度去分析。这道题目现在看起来不算特别难,出题者甚至没有利用音频文件的波形图进行摩斯密码加密隐藏flag,只是利用了视频文件迷惑了参赛者,刚拿到题目容易只从视频的角度去解题。所以说对于新手还是要多做题积累经验,尽量开阔自己的思维并学会联想其他解题的思路或角度。
*本文作者:zsg045,转载请注明来自FreeBuf.COM