👾

ITよくわかってない民兼CTF初心者がwriteupを書いてみたよ!

に公開

皆様お久しぶりです。
そして明けましておめでとうございます。南戸叶礼です。

昨年は久しぶりに12月20日から12月31日に開催されたi3ctfというCTFに参加しました。

日々の仕事で体力をかなり消耗していたこと、年末は家に帰省・家族と旅行に出かけていたこともあるため(言い訳)2日間のみの参加となりました。

その中でも南戸が解けたMiscのword?、QR、music、Icon、crack問題についてのwriteupを執筆していこうと思います。

Misc問題

Word?(50)

ファイルの中にあるFlagを獲得しようというのがこちらの問題。
実際にzipファイルをDLし解凍、中身のDocxファイル(Wordファイルの拡張子)を開いても白紙だったというもの。ノーヒントでこれはどういうことかを察しなければならなくなりました、クソ雑魚CTF初心者、南戸叶礼です。
(回答者の私がWordを持っておらずGoogleドキュメントで無理やり開いたのでもしかしたら何か書いてあった可能性はある)

しかし、Wordファイルが破損していても、かなり有名な問題形式ですので検索すると類似事例がわんさか出てくるのであります。

このファイルの拡張子を別のファイルに変換すると、本当のFlagが格納されているファイルになるのです。
本来であれば最初のWordのドキュメントの時点で別のヒントが書いてあるかと思われますが、それ以外にもヒントが存在し、題名の時点でこのフォルダの正体がWordのドキュメントであるかすら怪しいことを示唆していることからも、実際のファイルが別の拡張子であることを暗喩しているのです。

ということで試しにZipファイルに拡張子を変換してみるとあら不思議。最初にDLしたZipファイルの中身とは別の新しいファイルが格納されているZipファイルが出てきたではありませんか。

中身はどうやらXMLファイルなど様々なファイルが格納されているため、試しに一番上のXMLファイルを開くと一番下にFlagを発見できました。やったね!あとは提出することでスコア獲得です。

これ絶対fileコマンドで特定するやつだよな...(小声)

QR(50)

この問題はQRコード全体にバツ印が書かれている問題です。
色々QRコードの仕組みとか調べながら解いてみたのですが、よく問題のQRコードを見つめていて、ふと思ったんですよね。「これなんかバツ印薄くね?」と。

そうだ、力尽くでバツ印を消そう。

あとはもう編集ソフトのお力を借り、画像の明るさやコントラスト、露出補正を読み込み可能なレベルに達するまで編集して、実際にスマホなどでQRコードを読み込めばFlagを獲得、提出でスコア獲得です。

music(50)

こちらも他の問題同様にファイルをDLすると、musicファイルの中にある音楽(拡張子:midi)を聴くことができます。
最初はピアノの音でドレミファソラシド~♪と流れてくるので「なんだ、ただの音階のファイルじゃん」と思われますが、次の瞬間から鍵盤の上に猫でも歩いてきたかのような謎のメロディが流れてきます。
このギミックに覚えがある南戸叶礼は思いました。

「これ絶対音で文字書いているじゃん。」
(私がハマってた音ゲーが似たようなことをやっていたはずなんですがソースが見つからんのじゃ...)

実際にやることは決まったので、まだMIDI解析のためのソフトがなかったのでフリーソフトである「Domino」をDLして解析してみようとしたのですが、なぜか読み込みできない...なんで...XO

そもそもの話ですが「Domino」が対応するファイルはDMS(Domino専用形式のファイル)と、
MID(スタンダードMIDIファイル)になります。(2024/12/20現在)
そこでDLしたMIDIファイルをスタンダードMIDIファイルに変換してから読み込むと、実際に画面上にFlagが表示されますので、こちらを提出しスコア獲得となります。

Icon(100)

この問題は前述の Word?(50) と解き方はほぼ同じです。
DLしたフォルダを回答するとPowerPointのファイルが格納されております。このファイルを開くと、1枚のスライドが作成されており、探偵のキャラクターの横に「flagはここにはないようだ…」と記載されております。

こちらも同様に拡張子をzipファイルに変換し調査を行うと、先ほどのPowerPointのスライドと似た恒星のjpegファイルが格納されているフォルダがございます。その画像に記載されているflagを提出でスコア獲得になります。

crack(100)

今までの解法ではあまり触れてきませんでしたが、このCTFは課題ごとにヒントとなるコメントやちょっとした会話が繰り広げられています。
今回の課題ではJohnとBobによる、「パスワード付き圧縮ファイルのパスワードを忘れる」といったあるあるのシチュエーションによる2人の会話が繰り広げられています。

今回は「John the Ripper」を使用してパスワードの解析を行います。
具体的な使い方は、下記記事を参考にさせていただきました。
ありがとうございました!
John the Ripperを使う
【Kali linux】John the Ripperを使ってみる

上記記事の通りに、John the Ripper が解析できる形にするためにハッシュ値を生成し、そのハッシュ値を読み込ませた後にパスワード解析を行うと、zipファイルのパスワードが表示されます。

このパスワードを使用し、解凍することでtxtファイルの中にきさされているflagを入手することができます。このflagを提出でスコア獲得になります。

感想

今回開催期間中に最後まで解くことはできませんでしたが、知識を蓄えられたらと思う貴重な経験をさせていただきました。引き続きこのようなCTFが開催されればぜひ参加して自分のCTFの知識を蓄えていきたいと思います。

また、この度はこのような機会を用意くださりありがとうございました!

Discussion