かわろぐ

技術、セキュリティ、その他もろもろ

MENU

setodaNote CTF writeup

2021.8.21 PM 9:00 ~ 2021.9.4 PM 9:00 (JST) で開催されていた setodanoteCTF にチャレンジしました。

仕事も割と忙しい時期でしたし、子供のかまって攻撃でなかなか集中出来ませんでしたが夜更かししてなんとかWeb問題だけはコンプリートしました。結果としては 1740 point 265位でした。

f:id:kawa_xxx:20210905192148p:plain

解けた問題のフラグまで至った手順についてまとめておきたいと思います。

MISC

magic_number 80

f:id:kawa_xxx:20210905192025p:plain

マジックナンバーと言う事で、ファイルの先頭数バイトのアレだろうと言うことでググってリストを見つけてファイルタイプを特定します。

89 50 4e 47 png
52 61 72 21 rar
ff d8 ff e0 jpg

ダウンロードしたファイルの中には上記の拡張子のファイルがそれぞれ一つづつあるのでそれを並べてつないでフラグのできあがりです。

f:id:kawa_xxx:20210905192158p:plain

flag{post_rar_light}

ransom_note 100

f:id:kawa_xxx:20210905192031p:plain

問題文にあるとおり、No More Ransom project のページに行くとでクリプトツールがあるのでそれをWindows環境で動かせばフラグが出てきます。

問題のファイルは GANDCRAB V5.0.3 というランサムウエアで暗号化されている様子です。

この問題を解くのに一番時間掛かったのは、Windows環境の準備ですね。。。

f:id:kawa_xxx:20210905192036p:plain

WEB

Body 30

f:id:kawa_xxx:20210905191814p:plain

なるほど、おそらく HTML の Body の部分に flag が有るんだろうなと推測して、Chromeの開発者ツールで flag で検索したら有りました。ブラウザ上は表示されませんが、フラグがコメントアウトされた状態でありました。

f:id:kawa_xxx:20210905191759p:plain

Header50

f:id:kawa_xxx:20210905191819p:plain

問題のタイトルの通り、フラグはレスポンスヘッダに入っていました。

f:id:kawa_xxx:20210905191753p:plain

puni_puni 80

f:id:kawa_xxx:20210905191808p:plain

ぷにぷにってピュニコードかなと当たりを付けて、Googleで適当なデコーダを探して1行ずつ元に戻していきます。

xn--q6jaaaaaa08db0x8nc9t1b8fsviei84atb4i0lc
xn--q6jaaaaa03dpd4mb3jc5rpa0g9jpk07acadc.
xn--q6jylla3va3j6c8138a8eptvb303cxv4ft3o4ue63a
xn--v8ja6aj2a3cri3ag4a2r6cx2a1rkk1272c7j4ajd4bmf0kjhg6rb.
xn--q6j6gav1a0b2e1bh1ac2cl29ad7728kdjen6cz80dju6bqexchl9gel8b.

フラグは、さん、さん、ピー、ユー、エヌ、ワイ、
シー、オー、ディー、イー、よん、よん、です.
カタカナ表記は半角英小文字に

という文字列が出てきました。フラグはこれ。

flag{33punycode44}

tkys_royale 120

f:id:kawa_xxx:20210905191929p:plain

f:id:kawa_xxx:20210905191946p:plain

ログインフォームが出てきました。これはもうSQLインジェクション決めろと言われてるも同然ですね。

と言うわけでSQLインジェクションチートシートで検索して出てきた admin' or '1'='1'-- をおもむろに username に入れてみます。パスワード欄は適当に。

f:id:kawa_xxx:20210905191955p:plain

するとこんな感じにMySQLであると言うことと、クエリを表示してくれています。-- でクエリを壊せてないですね。と言う事でコメントを # に変えてみます。

admin' or '1'='1'#

f:id:kawa_xxx:20210905191937p:plain

やったね!

Estimated 120

何の変哲も無いブログっぽかったので、記事を漁ってみると、6/3付けで前日の記事の画像に不適切な物があったので記事を消したとありました。

f:id:kawa_xxx:20210905192008p:plain

おそらく記事は消したが、画像は消してないだろうと推測して、他の記事から画像ファイル名を推測してアクセスしてみます。

https://ctf.setodanote.net/web006/images/20210602001b.jpg

f:id:kawa_xxx:20210905192015p:plain

すると、なんの変哲も無い画像がでてきました。しかし、よくよく拡大して見るとPCの画面の中にフラグがありました。

flag{The_flag_wouldn't_like_to_end_up_in_other_peoples_photos}

Redirect 150

何回かリダイレクトされるので、Burpでキャプチャして、JS読んでパラメータ変更してクリア。

Mx.Flag 150

f:id:kawa_xxx:20210905192122p:plain

f:id:kawa_xxx:20210905192127p:plain

アクセスしたさきはこれだけでホント最初はわからなかったです 。クロムの開発ツールでみてても。

Burp でリクエスト見てみたら合った!favicon の中に隠れていた!確かに上手に隠れられていますね。

f:id:kawa_xxx:20210905192116p:plain

OSINT

tkys_with_love 30

f:id:kawa_xxx:20210905191826p:plain

Dorks 50

f:id:kawa_xxx:20210905192101p:plain

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

f:id:kawa_xxx:20210905192052p:plain

f:id:kawa_xxx:20210905192045p:plain

MAC50

f:id:kawa_xxx:20210905192110p:plain

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

f:id:kawa_xxx:20210905191838p:plain

pcap ファイルが降ってくるので、PNGファイルをエクスポートするとフラグが出てきました。

f:id:kawa_xxx:20210905191832p:plain

echo_request 120

pcap aICMPリクエストがたくさんありその中のdata に1バイトずつなにかついています。それを1バイトずつバイナリエディタにコピペして行くとフラグが出てきました。

f:id:kawa_xxx:20210905192133p:plain

stay_in_touch 150

590 が暗号化Zipファイルのあるメール 759がパスワードのメール flag{Yatagarasu-Takama-Kamuyamato2}

CRIPTO

base64 50

問題のタイトルの通り、与えられている暗号文は base64 でエンコードされてるだけっぽいので、適当なデコーダでデコードします。

f:id:kawa_xxx:20210905191852p:plain

私は BurpSuite のデコード機能を使いました。

f:id:kawa_xxx:20210905191845p:plain

フラグは上記の画像の通り、 flag{It's_called_base64!}

rot13 50

f:id:kawa_xxx:20210905191858p:plain

問題のタイトルにあるとおり、暗号文は ROT 13 で暗号化されている様子です。これもGoogleで適当なデコーダを探して文字列を放り込んでデコードします。

すると以下の画像の通りフラグゲット!

f:id:kawa_xxx:20210905191905p:plain

pui_pui 80

f:id:kawa_xxx:20210905191914p:plain

ぱっと見 unicode っぽいなと思ったので適当なデコーダを探して突っ込んだところ flag が出てきました。

f:id:kawa_xxx:20210905191922p:plain

forensics

paint_flag 50

ファイルをダウンロードすると、wordファイルに塗りつぶされたフラグの画像が入っています。 もしかしたらこれは、wordで塗りつぶしたのかな?と想定し、おもむろに docx の拡張子を zip に変更し、回答します。画像のありかを確認するとあった!

ちなみにmacOS のデフォルトのアーカイバでは docx を zip に変えても解凍出来ません。 The Unarchiver など別のツールでやりましょう。

f:id:kawa_xxx:20210905192138p:plain

Mail 50

msf ファイルと言う事でサンダーバードに読み込ませましょう。 Windowsであれば、 C:¥Users¥user¥AppData¥Roaming¥Thunderbird¥Profiles¥[都度変わる].default¥Mail¥Local Folders

にサンダーバードのファイルがあるのでとりあえず一番ファイルサイズの大きな sent を置いてサンダーバードを起動させてみたところ機密情報を添付したメールがありました。

f:id:kawa_xxx:20210905192142p:plain

おわりに

以上が私が解けた問題の一部でした。問題のレベルも私にはちょうどよく知らない事を調べながら解く事も出来ました。

オンラインのCTFで開催期間が2週間あると言うのもよかったです。仕事終わってからちょっとづつ進めることができて数日のCTFよりとても楽しめました。

煮詰まって一晩寝かせると言う事ができるのがいいですね。