setodaNote CTF writeup
2021.8.21 PM 9:00 ~ 2021.9.4 PM 9:00 (JST) で開催されていた setodanoteCTF にチャレンジしました。
仕事も割と忙しい時期でしたし、子供のかまって攻撃でなかなか集中出来ませんでしたが夜更かししてなんとかWeb問題だけはコンプリートしました。結果としては 1740 point 265位でした。
解けた問題のフラグまで至った手順についてまとめておきたいと思います。
MISC
magic_number 80
マジックナンバーと言う事で、ファイルの先頭数バイトのアレだろうと言うことでググってリストを見つけてファイルタイプを特定します。
89 50 4e 47 png 52 61 72 21 rar ff d8 ff e0 jpg
ダウンロードしたファイルの中には上記の拡張子のファイルがそれぞれ一つづつあるのでそれを並べてつないでフラグのできあがりです。
flag{post_rar_light}
ransom_note 100
問題文にあるとおり、No More Ransom project のページに行くとでクリプトツールがあるのでそれをWindows環境で動かせばフラグが出てきます。
問題のファイルは GANDCRAB V5.0.3 というランサムウエアで暗号化されている様子です。
この問題を解くのに一番時間掛かったのは、Windows環境の準備ですね。。。
WEB
Body 30
なるほど、おそらく HTML の Body の部分に flag が有るんだろうなと推測して、Chromeの開発者ツールで flag で検索したら有りました。ブラウザ上は表示されませんが、フラグがコメントアウトされた状態でありました。
Header50
問題のタイトルの通り、フラグはレスポンスヘッダに入っていました。
puni_puni 80
ぷにぷにってピュニコードかなと当たりを付けて、Googleで適当なデコーダを探して1行ずつ元に戻していきます。
xn--q6jaaaaaa08db0x8nc9t1b8fsviei84atb4i0lc xn--q6jaaaaa03dpd4mb3jc5rpa0g9jpk07acadc. xn--q6jylla3va3j6c8138a8eptvb303cxv4ft3o4ue63a xn--v8ja6aj2a3cri3ag4a2r6cx2a1rkk1272c7j4ajd4bmf0kjhg6rb. xn--q6j6gav1a0b2e1bh1ac2cl29ad7728kdjen6cz80dju6bqexchl9gel8b. フラグは、さん、さん、ピー、ユー、エヌ、ワイ、 シー、オー、ディー、イー、よん、よん、です. カタカナ表記は半角英小文字に
という文字列が出てきました。フラグはこれ。
flag{33punycode44}
tkys_royale 120
ログインフォームが出てきました。これはもうSQLインジェクション決めろと言われてるも同然ですね。
と言うわけでSQLインジェクションチートシートで検索して出てきた admin' or '1'='1'--
をおもむろに username に入れてみます。パスワード欄は適当に。
するとこんな感じにMySQLであると言うことと、クエリを表示してくれています。--
でクエリを壊せてないですね。と言う事でコメントを # に変えてみます。
admin' or '1'='1'#
やったね!
Estimated 120
何の変哲も無いブログっぽかったので、記事を漁ってみると、6/3付けで前日の記事の画像に不適切な物があったので記事を消したとありました。
おそらく記事は消したが、画像は消してないだろうと推測して、他の記事から画像ファイル名を推測してアクセスしてみます。
https://ctf.setodanote.net/web006/images/20210602001b.jpg
すると、なんの変哲も無い画像がでてきました。しかし、よくよく拡大して見るとPCの画面の中にフラグがありました。
flag{The_flag_wouldn't_like_to_end_up_in_other_peoples_photos}
Redirect 150
何回かリダイレクトされるので、Burpでキャプチャして、JS読んでパラメータ変更してクリア。
Mx.Flag 150
アクセスしたさきはこれだけでホント最初はわからなかったです 。クロムの開発ツールでみてても。
Burp でリクエスト見てみたら合った!favicon の中に隠れていた!確かに上手に隠れられていますね。
OSINT
tkys_with_love 30
Dorks 50
Googleの検索演算子の問題参考にしてページはこちら
https://gigazine.net/news/20190128-google-advanced-search-operator/
flag{inurl:login.php}
filters_op 50
from:@cas_nisc since:2017-05-14 until:2017-05-16
MAC50
MACという問題のタイトルで、00:03:93 という形式であればもうMACアドレスですね。
MACアドレスの上位はベンダーに割り当てられているはずなので、Googleで検査しどのベンダーなのかを調べていきます。すると上でABCはそれぞれ
00:03:93 Apple 00:01:A9 BMW 04:2A:E2 Cisco
でした。間違い無くベンダーの先頭の文字ですね。これに合わせてフラグないのベンダー名の頭を取って見ます。するとフラグは以下のような物になりました。
flag{O_U_I_Y_A}
NETWORK
tkys_never_die 50
pcap ファイルが降ってくるので、PNGファイルをエクスポートするとフラグが出てきました。
echo_request 120
pcap aICMPリクエストがたくさんありその中のdata に1バイトずつなにかついています。それを1バイトずつバイナリエディタにコピペして行くとフラグが出てきました。
stay_in_touch 150
590 が暗号化Zipファイルのあるメール
759がパスワードのメール
flag{Yatagarasu-Takama-Kamuyamato2}
CRIPTO
base64 50
問題のタイトルの通り、与えられている暗号文は base64 でエンコードされてるだけっぽいので、適当なデコーダでデコードします。
私は BurpSuite のデコード機能を使いました。
フラグは上記の画像の通り、 flag{It's_called_base64!}
rot13 50
問題のタイトルにあるとおり、暗号文は ROT 13 で暗号化されている様子です。これもGoogleで適当なデコーダを探して文字列を放り込んでデコードします。
すると以下の画像の通りフラグゲット!
pui_pui 80
ぱっと見 unicode っぽいなと思ったので適当なデコーダを探して突っ込んだところ flag が出てきました。
forensics
paint_flag 50
ファイルをダウンロードすると、wordファイルに塗りつぶされたフラグの画像が入っています。
もしかしたらこれは、wordで塗りつぶしたのかな?と想定し、おもむろに docx の拡張子を zip に変更し、回答します。画像のありかを確認するとあった!
ちなみにmacOS のデフォルトのアーカイバでは docx を zip に変えても解凍出来ません。 The Unarchiver など別のツールでやりましょう。
Mail 50
msf ファイルと言う事でサンダーバードに読み込ませましょう。
Windowsであれば、
C:¥Users¥user¥AppData¥Roaming¥Thunderbird¥Profiles¥[都度変わる].default¥Mail¥Local Folders
にサンダーバードのファイルがあるのでとりあえず一番ファイルサイズの大きな sent を置いてサンダーバードを起動させてみたところ機密情報を添付したメールがありました。
おわりに
以上が私が解けた問題の一部でした。問題のレベルも私にはちょうどよく知らない事を調べながら解く事も出来ました。
オンラインのCTFで開催期間が2週間あると言うのもよかったです。仕事終わってからちょっとづつ進めることができて数日のCTFよりとても楽しめました。
煮詰まって一晩寝かせると言う事ができるのがいいですね。