KoidelabCTF 2022 write up
KoidelabCTF 2022 write up
九州大学のオープンキャンパスに研究室で参加した際に,コンテンツの一環として2022 8/6 ~ 8/7 に開催したKoidelabCTF 2022のWrite upです.
koidelab
当研究室のことをよく知ってもらうために設けた,オリジナルのジャンルです. 研究室の公式サイトの中にフラグや,そのヒントが隠れているので探し出して回答するという問題でした. Moving Target Defenceは作問者二人も研究しているテーマなので問題にしてみました.
misc
azitsuke nori
黒塗りされた海苔(?)の部分をコピペしてしまえば普通にフラグが読めてしまいますよ!という問題でした. こんなに単純な話なのですが,これで本当に情報漏洩してしまったケースがあったりするのですよね……
ninja
.txtデータの拡張子を.pngに書き換えただけのファイルでした.ですので,拡張子を.txtに書き換えれば普通に開けると思います. この問題は拡張子についての知識を問いたかった問題です.拡張子というのはこんなに簡単に書き換えることができるのですが,書き換えたところで中身が変わっているわけではないんだよ,ということを感じていただきたかったです.怪しいメールに添付されている.pdfとかの安全そうなファイルも開いちゃダメだよ!って言われるのはこれが原因ですね. 思ったより解けた人が多くなかったので,これをきっかけに知っていただければと思います.
Large number of characters
結構みなさん解けてましたね.根気よく探したわけではないよね……? 問題の説明通り莫大な文字の中からフラグを見つけ出す問題です.解き方は正規表現で探したり,grepコマンド叩いてみたり,エディタで検索かけてみたりでしょうか?
web
riddle game
一昔前に流行った隠し探し(隠しページ探し)っぽい問題を作りました.
3つのステージをクリアすればフラグのあるページへ辿り着きます.
-
stage1: 文章中の「,」に次ページへのリンクがある.tabキーを使う.
-
stage2: 「目には見えない」リンクを探す.Ctrl+Aなどを使えば背景色と同色のリンクが見つかる.
-
stage3: ヒントにもあるとおり,ページのソースコードを見るとコメントアウトされたリンクが見つかる.ぶっちゃけソースコードを見ればstage1,2も瞬殺できる.
Chrome系のWebブラウザであれば,F12でデベロッパーツールが開けるのでそこからソースを見るのが楽.ちなみにデベロッパーツールには様々な機能があり,Cookieなども確認できるのでWeb系のCTFを解く際にはよくお世話になるかも.
flag cat
よくわからないテンションのホームページから,バラバラになったフラグの断片を見つけるという問題です.
上の問題でも出てきたデベロッパーツールの"Source"タブを見ることで,サイトがindex.htmlの他にsrc.jsやstyle.cssから構成されていることがわかるのでフラグを入手して組み合わせる.
Please Login
ユーザ名もパスワードも不明でありながら,フラグ入手の為にログインすることを強いられる問題です.
一見SQLインジェクションを使うっぽい問題ですが,今回は別の方法でログインしなければいけません.
WebブラウザがWebサイトに対して通信する場合,HTTPと呼ばれるプロトコル(規格のようなもの)が主に使われますが,これはステートレス(状態を持たない)なプロトコルです.なので例えば会員制のホームページを作る際に,そのままではサーバは接続してきた相手がログイン済みかそうでないかを区別できません.そこで"Cookie"と呼ばれる情報をWebブラウザ側で保存しておき,サーバへアクセスする時に一緒にCookieを送信することで通信相手がログイン済みかどうかを知ることができます.
このCookieはブラウザ側に保管されているので,中身を閲覧したり書き換えたりすることができます.例えばGoogle Chromeであればデベロッパーツールの"Application"タブからCookieの内容を確認することができます.
この問題ではログイン済みかどうかをCookieの"isLogin"という値で判別しており,未ログインであればisLoginは"No"となっています.
そのためこの値を"Yes"に書き換えてからサーバへアクセスすることで,ログイン認証をスキップすることができます.
crypto
Caesar cipher
暗号の中で最もシンプルでわかりやすいシーザー暗号の問題でした.アルファベットを13文字ずらすと復号できます. 暗号文は一見複雑ですが,シーザー暗号であることが分かってしまえば誰でも復号できてしまうことを体験してほしいな,という問題でした!
taptaptap
これは暗号というよりモールス信号ですね.そのことに気づくことができれば解けた問題だと思います. .-だとツールで簡単に解かれてしまうかと思ってとんつーにしましたが,今思うとめんどくさかっただけかもしれません.
Simple substitution cipher
この暗号化方式,一度は自分で思いついた方多いのではないかと思います.単一換字式暗号という名前がついていることをご存知でしたでしょうか? 一見強固に見えるこの暗号,確かに総当たりでは莫大な時間がかかってしまいそうですが,アルファベットの出現頻度や"a",“the"など,繰り返し出現する単語が推測しやすいなどの理由で実は普通に解けてしまうのですよね…… ヒントにも書いておきましたが,quipqiup で一瞬で解けるので一度試してみて欲しいです.
総評
思ったよりたくさんの人に参加していただけて,しかも想定したより問題を解けた方が多くてこちらもとても楽しかったです.明らかに高校生じゃないプロのCTFerも数人いましたが,何はともあれご参加ありがとうございます! また,当日のzoomも盛況で皆さんの様子や興味があることなど,非常に参考になりました.ありがとうございました! これを機にCTFやセキュリティに興味を持ってもらえたり,進路選択の参考になれば幸いです.数年後,小出研の後輩になる方がいらっしゃると嬉しいですね.