fmsctf #03

7/4にfmsctf #03を開催したのでその纏めを書いておきますatnd.org



当日のtweetに関してはsakuraさんが纏めて下さったのでどうぞ
(sakuraさん, ありがとうございます!)togetter.com



まずfmsctfって何?って話ですが, fmsctfはfms(先端メディアサイエンス学科)によるCTFで, fmsらしい問題を中心にEsperが多いCTFです

前回は去年末のYEHDで, この時のことはこの辺をどうぞkkrnt.hatenablog.com


前回Esperばっかでアレな感じだったので, 今回は農工大の方々にも問題を作って頂き, 所謂CTF問が半分, fms的な問題が半分って感じでした





問題は一部を除いて公開が許可されているため, アップロードしておきました
http://c.arckty.org/fmsctf03.zip

flagの検証に関しては, 僕か作問者に連絡して頂ければ…と思います





僕が作問したものに関して


Image
nakasis.org - 20pt
中野シスターズの画像を用いた問題です. XDensityを0x01に変更しただけの画像で, 基本的に上手く開ければflagが表示されるものでスゴく簡単なものですが, 例えばWindowsフォトビューアーなどではXDensity, YDensityの値を見るため, よく分からない画像が表示されるという問題でした


Windows
Windowsカテゴリーは1つのovaファイルを配布しました
権利の問題など色々とあるので配布はしませんが, 解きたい方がいれば連絡下さい

Sticky Keys - 200pt
配られたovaファイルをインポートし開くと, aliceというアカウントが存在するWindows7が起動します. aliceのパスワードは分からないのですが, 問題名のとおり固定キー機能が有効になっていて, Shiftを5回押すとHSPスクリプトエディタっぽいものが起動します. このエディタではHSPのコードを書いてF5を押すと実行出来るので, テキトーにコードを書いて実行してflagを得るという問題でした. 僕の想定解としてはnoteload命令を利用してflag.txtを読み込むパターンと, execでcmd.exeやnotepad.exeを起動して読み込むパターンがありますが, 解法は非常に多くあるのでテキトーに…

Administrator - 300pt
Sticky Keysの状態からflag.zipを探せという問題です. 問題名から察するにAdministratorな場所にありそうなので, テキトーに漁るとC:\Users\Administrator\Desktopにflag.zipが存在します. 後はHSPでzip解凍するコード書いたり, PowerShellで解凍したり, cmdでstringsしたりすれば終わりなんですが, 僕の想定解としてはcmd.exe上でnet userコマンドを実行し, AdministratorをActiveにしてパスワードを変更しログインするというものでした

Windowsカテゴリーは問題のレベルにしては点数が高く, かなり反省してます…
最初作ろうと思っていた問題だと難しすぎると思ったので修正したんですが, 今度は簡単過ぎたか…


Zip
Same Files? - 50pt
1つのzipファイルが渡されます. このzipファイルはflag{xxxxX}.txtやflag{xxxXx}.txtなど大文字小文字で区別されたファイルが31個入っているもので, Windowsなどで解凍しようとするとファイルが既に存在しているって言われて上手く解凍出来ないものでした. 想定解としてはStringsや目grep, またLinux上などではフツーに解凍出来るのでテキトーに, やるだけって感じの問題でした.

Did you play the Game? - 200pt
1つのzipファイルと1つのbinファイルが渡されます. zipファイルはパスワードが掛かっていて, binファイルはよく分からない形式をしています. binファイルに対してstringsしてみると「GBAGAMEDATAFILE」という文字が出てくるので, GBAなbinファイルなんだなーって分かります. 後はテキトーなエミュレータで動かしてみるとURLが表示されるのでそこにアクセスすると鍵の画像が出てきます. zipファイルの中身を見てみるとkey.pngというファイルが存在するので, 後は既知平文攻撃で解くことが出来ます






次に僕が解いた問題に関して



**Hello**
Hello - 1pt
クソ問アワードを獲得した問題です, Flag is FMSCTF{Hell0_FMSCTF}.と書いてあるだけなんですが, flagの形式を明確に示してなかったり, ピリオドが邪魔など色々と意見がありましたww


Forensics
Nakami_ga_ka.rar - 200pt
rarファイルが渡されるので解凍しようとすると破損しているって言われます. よく分からないのでバイナリエディタで開いて仕様と比べて見ると, flag.txtの先頭にnull文字が含まれています. これが原因で解凍出来ないようなので, テキトーに変更してみると解凍出来ます. 後で知ったんですが, ソフトによってはそのままの状態で解凍出来たらしいです…


Image
Self Decrypt PNG - 100pt
良問アワードを獲得した問題です. pngな画像ファイルが渡されます. 開いてもflagが出てこないので中身を見てみるとhtmlっぽい文字列が見えます. 明らかにjsっぽい部分があったのでそこだけ抜き出して実行してみてもエラー. うーんと思い, もしかしてファイル全体がpngなんじゃないかと思い拡張子pngからhtmlに変更して開くとflagが出てきました. これはスゴく感動しました!


Misc
File (Half-way) - 50pt
何かよく分からないファイルが渡されます. ファイルの先頭を見てみるとBPGと書いてるのでググってみるとそういう画像形式らしい… BPGに対応しているソフトを使って表示するとflagが出てきました

File (Perfect) - 100pt
Half-wayのflagにExifがどうのこうのって書いてるのでこのファイルのExifを見れば終わりです. BPGのExifを見れるソフトが中々無くて, しかもこのExifは文字列じゃなくて画像データなので面倒くさかった… 結局Exifに別の画像ファイルが入っていて, それを開くとflagが出てきます


QR
These are NOT broken. - 100pt
4つのQRコードっぽい画像が配られます. でもいつも見るQRコードっぽくなく, Readerでも読めませんでした. みんな全然解けず, 後半になって「QRだけどいつものQRじゃないよ」みたいなヒントが出たので, QRコードについてWikipediaで見てみるとマイクロQRコードであることが分かりました. 後はそれに対応したReaderで読みこめば実行可能なスクリプトが出てくるので, それを実行するとflagが落ちてきます

Reversing
sorting - 150pt
elfなファイルが配られるので, 取り敢えず実行するとflagを入力しろって言われます. 逆アセンブルすると文字列入力を受けた後にgenFlag()という関数を呼び出し, その直後にstrcmpをしていました. その辺をテキトーにgdbで漁って見るとflagが出てきました

avoidence - 150pt
またelfなファイルが配られるので, 実行してみると処理が終わりません. 逆アセンブルしてみてみるとwait()という関数で止まっているみたいな感じがします. wait()はスゴく時間が掛かる処理をしているようですが, ヒントとして「wait()は表示するだけだから」と言われたのでwait()を呼ぶ部分を取り除くとflagが出ました


Web
Flag - 50pt
hidespanを利用した問題で, ここをコピーしろって書いてるんですがflagらしい文字列は見当たりません. 僕はsourceを見てflagを得ましたが, 文字通りコピーするとflagが得られる問題だったようです.




僕が解けた問題は以上ですが, 今回は今回でfmsらしい問題が多くありました

オシロスコープで見るとflagが出てくる問題とか, waifu2xを用いた問題とか, Shaderなコードを実行する問題とか…

また農工大の方々が作問した問題もスゴく面白いものばかりで, 特にLeap Dateとかhand calculatorとかTmitterとか. JSがさっぱり分からない僕には厳しかったですが, 後でWriteUpを聞いてスゴく面白そうな問題だなーって思いました



終わった後みんなで🍕食べたり, 自己紹介したりして解散しました


次回は年末のYEHDとなる予定です
今回以上に面白いfmsctfを開催したいと思いますので, 興味のある方は是非参加して下さい!



以上です,
作問者の方々, 参加者の方々, 関係者の方々, ご協力ありがとうございました
次回に向けて頑張っていきましょう!!