はじめに
この記事は SLP-KBIT AdventCalendar2024 14日目の記事です。
今日は香川大学CTFですね!
大会後追記:私の結果は2位(2位ではない) でした。やったね。
昨年度の先輩の過去問を全部解いてから気持ちよく寝ます。
記事の最後に情報系コースの1年生への有益アドバイスあります。
答えとか転載してるので怒られたら記事消します。
以下常態。
Browser 問題
FakeGPS 40
問題文略
解法-FakeGPS 40
DisguisingGPSisEasy.htmlを読むと
const encodedFlag ="ZmxhZ3tZYXkhIEl0J3MgYW4gSW5zdGEtd29ydGh5IHZpZXchfQ==";
の記述がある。
BASE64でデコードすると
flag{Yay! It's an Insta-worthy view!}
UserAgent 40
問題文略
解法-UserAgent 40
かっこつけた解法
$ curl -A "Mozilla/5.0 (Android 4.4; Tablet; rv:70.0) Gecko/70.0 Firefox/70.0" https://uatest.example.com/pushF12key.php | grep flag
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 101 0 101 0 0 499 0 --:--:-- --:--:-- --:--:-- 502
flag{YouAreMobileGeek}
FastSpeedStrings 60
問題文略
解法-FastSpeedStrings 60
ブラウザのデベロッパツールにflagっていうファイルがある。
/flagを確認すると
flag{JSIsNotJava}
Domain問題
subdomain 60
問題文略
解法-subdomain 60
模範解答のサイトはリンクが切れていたため、ググったら出てきたサイトを使いました。
flag{Let's look for more flags!}
ドメイン名例jp 80
問題文略
解法-ドメイン名例jp 80
簡単に見つかりません。日本語を使ってるドメイン名かな~と予測を立てる。
ググってみると、日本語ドメイン名は、Unicodeで表された文字をPunycodeというアルゴリズムに基づいて、ASCIIの文字列に変換することによって実現しているらしい。
変換後の文字列に「xn--」という接頭辞が(たぶん)必ずついているらしいので
探してみるとxn--
から始まるサブドメインがある。
flag{ThisIsPunyCode!NihongoTukaeru}
punycode。CTFをやらなかったら存在すら知らなかったことでしょう。
写真問題
これがむずい。対策もわかんない。
WebApp問題
WebApp1 30
問題文略
解法-WebApp1 30
GETメソッドを用いてサーバに情報が渡されている。
URLのパラメータを書き換えるとFlagのあるページにたどり着く。
flag{マチュピチュ遺跡のミシシッピ川グランドキャニオンサンディエゴ盛り合わせ}
WebApp問題
WebApp2 50
問題文略
解法-WebApp2 50
Chromeの場合、開発者ツールのアプリケーション
>ストレージ
から使用しているcookieを見ることができる。
roleを書き換えるとFlagのあるページにたどり着く。
flag{今夜、晩ごはん一緒に行く人大募集}
Network問題
dhcp
問題文略
解法-dhcp
わからん。要勉強。
とりあえずDHCP 攻撃
でググると
DHCPスプーフィング
がトップに出てくる。
パケット番号は5個しかない。
とりあえず5通り試してみるのが大事かも。
flag{DHCPスプーフィング2}
DHCPの通信フロー
- DHCP Discover: クライアントがネットワーク上で利用可能なDHCPサーバーを探してブロードキャストする
- DHCP Offer: サーバーがクライアントに対してIPアドレスを提供する。
- DHCP Request: クライアントが特定のサーバーから提案されたIPアドレスを選択してリクエストする
- DHCP ACK: サーバーがクライアントにIPアドレスを確定し、ACK(確認)パケットを送信する
授業でやったような...?
表にはDHCP Offerが2回あるので、DHCPサーバになりすましてる攻撃者かな?と思えたらいいらしい。
おわりに
2年前期のインターネットの授業はちゃんと受けよう!