Funny的多媒體檔案隱寫題
0×01 題目背景
前不久參加某網路安全競賽,在上午的理論考試和CTF中被虐的體無完膚,不僅因為參賽者的實力強大,更是因為出題者的腦袋“骨骼精奇”,很多題目的解答思路都很新奇。
其中有一道misc型別的題目被我鑽研了很久,但是最後比賽結束了也沒有找出flag,心裡實在是不爽。於是在比賽結束的當晚我繼續鑽研本題,最終找到了隱藏的flag。
0×02 檔案分析
首先題目沒有任何提示,只有一個下載附件的超連結,下載完附件後發現是一個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。
0×03 再次出發
當天的比賽結束後一直惦記著這道題,甚至去搜索了與視訊有關的writeup,沒有搜到相關的文章,但是搜出了一些音訊檔案隱寫題的分析文章。一想到比賽最後發現的雙音軌,我決定去試試從音訊下手。
我首先下載好MKVToolNix這個軟體,這是個功能強大的MKV格式處理軟體,具體有哪些功能就不多說了,我這次要用到的功能就是將MKV格式中的音訊提取出來。直接把視訊檔案拖進MKVToolNix中,然後分別將兩個音訊檔案分離出來,準備接下來的音訊分析。
圖3.1 用MKVToolNix分離音訊
開啟專門處理音訊的軟體–Audacity,先把第一個音軌的音訊檔案拖進Audacity中。不出意外,在波形圖、波形(dB)圖和頻譜圖中均未找到flag,也沒有發現類似摩斯密碼的東西。到這裡很明顯第二個音軌檔案就是突破口。
0×04 突破口
還是在Audacity中開啟第二個音軌的音訊檔案,波形圖和波形(dB)圖跟第一個音軌的一樣,顯然flag不在這裡。
圖4.1 第二個音軌的音訊檔案的波形圖和波形(dB)圖
接下來就是頻譜圖,一開啟頻譜圖就發現了苦苦尋找的flag,雖然沒能在比賽中解出該題,但是也算給自己增長了經驗,還是有所收穫的。
圖4.2 藏在頻譜圖中的flag
0×05 總結
由於之前接觸的多媒體檔案隱寫題較少,而且只見過音訊檔案的隱寫,所以第一次遇到視訊檔案的隱寫題有點力不從心。另一方面也是自己的思維不夠開闊,沒有及時聯想到視訊檔案中的音訊檔案也可以分離出來做分析,一看到視訊格式的檔案就只想到與視訊或影象相關的角度去分析。這道題目現在看起來不算特別難,出題者甚至沒有利用音訊檔案的波形圖進行摩斯密碼加密隱藏flag,只是利用了視訊檔案迷惑了參賽者,剛拿到題目容易只從視訊的角度去解題。所以說對於新手還是要多做題積累經驗,儘量開闊自己的思維並學會聯想其他解題的思路或角度。
*本文作者:zsg045,轉載請註明來自FreeBuf.COM