こんにちは、がーとです。先日 CPCTF2021 に参加しました。OSINT 問題が楽しかったので今回初めて CTF の Writeup をやってみたいと思います。初めてなのでお手柔らかにお願いします。

今回私は 1,831.31 点を獲得し、44 位でした。CTF 初心者の私は大体 OSINT で点数を稼ぎました。 score

Boundless Internet Ocean

xxpoxxは画面内に並ぶ無数の情報の中にフラグを隠しています。

見つけ出してください。

リンクに飛ぶと xxpoxx さんの書かれた記事が並んでいます。FLAG とかで検索をかけてみましたがヒットせず。ここでさっきの所に戻って上の方に注目すると Twitter のリンクを発見。このアカウントに FLAG が隠されているのかと思ったので from:cskd8 flag と検索をかけるとフラグゲット。from: などの Twitter 検索のキーワードがわからない場合は高度な検索を使ってみるといいと思います。

Secret Account

ロリ子のtwitterアカウントは@trapyojoですが、最近裏アカウントを作ったようです。この問題のフラグは、FLAG{そのアカウントのid}です。

リンクに飛ぶと bio に “ほんみょうは「あずま のりこ」っていうんだよ!” と書かれているので Twitter で あずまのりこ とアカウント検索をかけてみると bio に分かりやすく “裏垢” とだけ書かれたアカウントが出てきました。親切ですね!

Dig The Account

Noelは CPCTF の運営に関わっており、この問題のフラグを管理しています。しかし、彼はセキュリティ意識が高いので、ツイートを非公開にしています。

フラグを見つけ出してください。

鍵垢なので当然そのアカウントのツイートは見れませんが、このアカウントに関連するツイートを探すにはどうしたらいいかを考えると、このアカウントに対してのリプライを検索すればいいのではないかという発想に至ります。これも高度な検索を使うか、to:_____noel____ と検索をかけてみます。そうするとフラグがそのまま載っているツイートが出てきます。

Student ID Card

東都工業大学情報理工学院に 2021 年度学部生として入学したあなたは、大切な学生証をどこかに落としてしまいました。それに気づいたあなたはあちこちを探し回ったところ、学生証は無事見つかりましたが、悪意ある者により学籍番号の大部分が黒く塗りつぶされてしまっていました。あなたの記憶力はニワトリ並なので、これでは自分の学籍番号がわかりません。学生証に書かれている学籍番号は、塗りつぶされている部分を?と記述すると、以下のものです。この問題のフラグはFLAG{学籍番号}です。

????067?

Twitter で 東都工業大学 学籍番号 と検索をかけてみると最後の桁の計算方法とかいうよく分からないツイートが出てきました。大学の学籍番号は学科などの区分でどこかの桁が決まっている事が多いと思うので 情報理工学院 学籍番号 と検索をかけてみると東工大の人のツイートと東都工業大学の人のツイートが出てきました。東都工業大学の方を見てみると学籍番号の 4 桁目は 3 になりそうという事が分かります。また、東都工業大学は東都工大と略される事が分かります。という事で 東都工大 学籍番号 でも検索をかけてみると “学籍番号が「19b」で始まる学生の皆さんへ” というのが出てきます。この 19 は恐らく 19 年度入学生という意味で b は学士 (bachelor) って意味かなと思うので 21b で始まりそうだなーと予想します。これで最後の桁以外は分かって最後の桁はあのよく分からないツイートに従えば計算できそうですが 10 通りぐらい総当りしてもいいよね。いいの?

Where Is That Celebrity?

この写真が撮られた場所はどこですか? この問題のフラグはFLAG{この写真が撮られた公園の電話番号のハイフン無し}です。 Where Is That Celebrity?

とりあえず EXIF を確認しましたが何もないのでこの写真の中に検索できそうな物を探します。すると奥に艦艇があることに気が付きます。そこで 艦艇 公園 と Google で検索すると “世界三大記念艦「三笠」” というのが沢山出てきました。それらを見ているとどうやら三笠公園という公園があるらしい事を知ります。その電話番号を探して終了。

ちなみに私は艦艇という言葉に辿り着けなくてヒント1だけ見ました。

Where is the Museum?

ロリ子は少し前に親戚のお姉さんのところに遊びに行って、近所の博物館に連れて行ってもらいました。ロリ子はもう一度行きたくなったのですが、お姉さんは忙しいらしく連絡を取ることができません。博物館について調べていると、お姉さんのtwitterアカウントを見つけました。

ロリ子の代わりにその博物館を探してあげてください。この問題のフラグはFLAG{上述の博物館の電話番号からハイフンを抜いたもの}です。

とりあえず Twitter のプロフィールに飛んでツイートを見てみると “デイリーヤマザキ、近くに3つくらいあって草” というツイートしています。これは使えそうですね。またフォローしているアカウントを見ると横浜市関係と博物館を大量にフォローしています。そしてよく見ると横浜市中区災害情報というアカウントをフォローしているので横浜市中区に住んでいそうだなということが分かります。あとは Google マップで横浜市中区を開きデイリーヤマザキが 3 つ集まっているところの近くの博物館の電話番号を入れていけばあたります。

Where was I ?

私は、2020 年 8 月 13 日午後 0 時 30 分頃どこにいたでしょうか?

私がいた場所の地下鉄の最寄り駅を見つけてください。

FLAG の形式はFLAG{駅の電話番号をハイフン無しで}になります。

問題文の “私” は作問者の nambatsu さんを指しています。Twitter で探してみると @nambatsu というアカウントがこの方っぽいです。しかしヒントになりそうなツイートはしていません。bio に “競プロとかCTFとかのアカウントを作りました。パブリックなアカウントです。” と書いてあるのでこの他にもアカウントを持っていそうです。そこで なんばつ で検索をかけてみると @na_X_ni というアカウントが出てき、bio に traP と書いてあるのであっていそうです。このアカウントで該当の日のツイートを探してみます。高度な検索を使うか from:na_X_ni since:2020-08-13 until:2020-08-14 で検索をかけるとどうやらゲームセンターで撮った画像が出てきました。なんばつさんがいつも行っているゲームセンターを探せばよさそうですね。そこで from:na_X_ni ゲーセン で検索してみると “恵比寿のゲーセンにボルテ新筐体入ってたからやった。” というツイートがあります。そこで恵比寿駅の電話番号を試すとあっていました。

Let’s go to a Disco

CPCTFの運営であるCPちゃんがCPCTF2021のDiscordサーバーを作ったようです。

2021/04/22にCPちゃんのtwitterでサーバーの招待コードをツイートしたそうですよ!

そこに参加するとFLAGが手に入るそうです!ぜひ参加してください!

最初に私は discord.gg since:2021-04-22 until:2021-04-23 で検索してみましたが大量に出てきすぎてわかりませんでした。今思えば当たり前ですね。そこで素直に CPちゃん でアカウント検索すると “こんにちは!CPCTF2021運営のCPちゃんです!” と bio に書いてあるアカウントが出てきました。このアカウントのツイートを見てみると 2021/4/22 に “あれ、Discordサーバーの招待リンクのツイート消えてる?間違って削除しちゃったかな・・・ 🤮” というツイートをしているので該当のツイートは削除されたようですね。そこで安直に ツイ消し 見る で Google 検索して出てきた方法を色々試してみて最終的に辿り着いたのがツイログです。これは消されたツイートのユーザがツイログを利用している場合のみ有効な手段ですが、CPちゃんはツイログを利用していました。やったね。そして見つけた Discord の招待リンクで Discord サーバーに入ってみると入室ログのチャンネルとよく分からないチャンネルが 2 つあります。結果から言うと first というチャンネルで正しいリアクションをつけると second というチャンネルが出てきて、また正しいリアクションを押すと、という感じで進めていき、間違えたら reset というチャンネルでリアクションをするという感じです。そして flag チャンネルに辿り着くとなんと cp_chan のプロフィール画像に書いてあると言ってきました。このままだとよく見えないのでブラウザの Discord でデベロッパーツールを開き cp_chan のプロフィール画像の要素を選択し、画像のソースを探すと、 https://cdn.discordapp.com/avatars/828434898170675240/d4f24f59e4e18e29c66480c8d2cc9821.png?size=128 という URL を見つけました。開いてみると下の方になんか書いてありますが画像が荒すぎて読めません。ここで URL の最後の方に注目すると size=128 と書いてあります。これはお使いのディスプレイの画質によって変わりますが私の場合は 128 でした。これを変えれば高画質な画像が入手できるかもしれませんね。しかし size=1000 とやってみてもエラーが出て見れませんでした。これは Discord の仕様で Discord Developer Portal — API Docs for Bots and Developers を見てみるとどうやら 16 から 4096 までの 2 の累乗なら良さそうです。size=4096 にすればフラグゲット。