Misc 是 Miscellaneous 的縮寫,中文翻譯是 混雜的、各種各樣的,基本上當出題者覺得不管題目放哪個分類都不太對時,就會丟來 misc 放 XD
Misc 的題目大致可以分三個類型:
blockchain
相關的題目,最近比較流行的是 machine learning
的題型關於 forensic 和 misc 題的差異,這兩個類型因為比較沒有既定的出題模式和明顯的要素,會比較難以分類,偶爾也會有 CTF 比賽會直接把 forensic 題目丟到 misc 分類下 XD 不過任何一個題目丟到 misc 底下都不算錯,但把 misc 題丟到 forensic 分類就不一定正確了,從一個或一些檔案中分析並找出想要的資料,才有 forensic 的要素
補充一下,misc 和 forensic 也是最容易不小心出成猜謎題的題目,在出題前後務必先詳閱 PPP 的文件,避免出了像是金盾般的題目...XD
雖然說這題被掛在 forensics
的分類下,但我覺得整個解題方法比較偏 misc 題,所以放到今天介紹
題目敘述只有 Find the key
,附件給了一個 hitcon.zip (網站竟然還活著 XDD),嘗試解壓縮會發現需要密碼沒辦法解開,乍看之下是個猜密碼的糞題,但這題的 zip 是精心設計過,可以在不知道解壓縮密碼的情況下解壓縮檔案
雖然無法解開檔案,但我們還是可以看到 zip 裡壓縮的是兩個檔案:
key.txt 應該就是我們預期解壓縮的檔案,另外一個檔案就比較意義不明,但可以發現該檔案可以在 hitcon.org 的網頁上找到
再仔細觀察這兩個檔案,可以發現他們是用相同的演算法 (ZipCrypto Deflate) 和版本進行壓縮,因為我們可以取得部分 zip 內解密的 plaintext,因此有機會透過 A Known Plaintext Attack on the PKZIP Stream Cipher 這篇論文的攻擊手法,在不知道密碼的情況下解壓縮被加密過的 zip
如果在論文剛發表的年代,這題就是典型的 crypto 了,但還好這題是在 2013 出的,早就有人實作工具 PkCrack 可以直接使用了 XD 因此接下來只要照著 README 的步驟做,就可以將 key.txt 解壓縮得到 flag
總結這題的解題思路,因為有一些通靈和 crypto 的要素,所以我會覺得比較偏 misc: