🗼

[AVTOKYO2024] Open xINT CTF 2024 write-up (ryo-a)

2024/11/18に公開

はじめに

AVTOKYO2024で開催されたCTF「Open xINT CTF 2024」のwrite-upです。今年参加された方々のみならず、来年度以降参加される方の参考になれば幸いです。

2023年に引き続き、1位を頂くことができました。2022年のチーム戦から通算で3連覇出来ました✌

以下、問題文および問題画像はOpen xINT CTF 2024の競技サーバーから引用しました。
解法部分は自力で解いてみたい人のために、表示・非表示を切り替えできるようにしています。

なお、問題名横の 100pts / 52 solves などは点数と競技終了までの正解者数を示します。"first blood" はryo-aが最初の正解者となった問題です。

競技概要

  • 競技時間: 11月16日(月)14:30〜19:30 JST(5時間)
    • 登録開始: 11月16日(月)12:00 JST
  • AVTOKYO2024 会場(オンサイト)あるいはオンラインで参加可能
  • Jeopardy形式
  • 点数はすべてstatic方式
  • 個人戦(1名まで)
  • 参加プレイヤー: 183名(閉会式時の発表による)
  • 4800点満点

category: misc

✅amore (100pts / 52 solves)

この本のタイトルは?
What's the title of this book?

解法(ここをクリックして表示)

書籍の断面(小口)におしゃれな柄が印刷されている。Xを「小口印刷 エッフェル塔」などで検索してみるも、特に情報は得られなかった。

100pts問題なので易しいはずと思い、Google Lensに入れてみたところ、フリマサイトの商品画像としてピンク色の背景で撮影された本が多数ヒットしてしまい、該当する本が見つけられなかった。

後回しにして再トライした際、囲ったエリアによっては海外サイトがヒットすることがわかった。

この書名で検索し、同じ図柄が小口に印刷されていることが確認できた。
Flag: The Pairing

微妙な囲い方によって結果が変わる解法は不安定なので、もう少し安定的に解ける手法を見つけたいところである(画像編集などを試すべきだったか)。

category: food

✅all green (100 pts / 98 solves)

この店の電話番号は?
形式:国番号およびハイフンなし

What is the phone number of this store?
Format: without country code and hypens

解法(ここをクリックして表示)

料理や店内をGoogle Lensで検索してもヒットしない。
そこで、テーブル部分を拡大してみると、@hiroba.sushiと書かれているステッカーが見える。.が入っているのでInstagramのIDのように思われるが、そのままGoogle検索してみる。

Google検索結果に海外の寿司店が表示されているので、これを試すと正解だった。

Flag: 7029820021

✅noodle (200pts / 26 solves)

この料理の名前は?
What's the name of this dish?

解法(ここをクリックして表示)

地味に手を焼いて何度も後回しにした問題。

そのままGoogle Lensを通すと、器とテーブルの雰囲気が一致する店舗がヒットする。墨田区にある「特撰ひやむぎ きわだち」であるとわかる。ここまでは極めて容易だと言える。

問題はここからである。どうやら、ひやむぎを使った創作料理らしい。
食べログにメニューの写真がないか?と思って調べたところ、どうやらメニューに料理名が掲載されている料理ではなさそうで、ひやむぎ食べ比べディナーコースの一部である限定ひやむぎとしてこの料理が提供されるようだ。

限定メニューでも客に提供されるときの料理名はあるだろうと思い、食べログやXを検索していくと、「カルボナーラ風のひやむぎがある」という趣旨の投稿がいくつか見つかる。しかし、レビューやX上の投稿で表記は統一されておらず、色々試すものの不正解となる。

また、店舗公式サイトの限定メニュー欄には掲載されておらず、アーカイブを参照しても記載されていなかった。

答えに辿り着けず、この状態でしばらく放置してほかの問題に取りかかっていたところ、「最近の飲食店はPRに何を使うだろう?」という疑問が思い浮かんだ。Instagramではないだろうか。
そこで「特撰ひやむぎ きわだち」のInstagramを検索したところ、公式アカウントがヒットした。

なんとCTF開催直前(当日朝)に似た料理の画像がInstagramに投稿されている。Instagramでは店舗から公式に料理名が出ていた。


https://www.instagram.com/p/DCaboxmzdBc/ より

Flag: 釜玉バターひやむぎ

net

✅whois (100pts / 86 solves)

gov.ru の納税者番号は?
What is gov.ru's tax payer ID?

解法(ここをクリックして表示)

Open xINT CTF恒例のwhois問題。

whoisコマンドを実行するだけである。実行結果は長いので一部略したが、taxpayer-idというそれらしき項目がある。

% whois gov.ru
(略)
state:         REGISTERED, DELEGATED, VERIFIED
org:           Special Communications and Information Service of the Federal Guard Service of the Russian Federation (Spetssvyaz FSO RF)
taxpayer-id:   7702358248
registrar:     CC-RU
(略)

Flag: 7702358248

category: history

✅art (100pts / 126 solves)

この作品の作者は?
Format: 姓_名

Who is the artist of this artwork?
Format: Last name_First name

解法(ここをクリックして表示)

おそらく公共空間にある彫像だろう。Google Lensに通すと、以下のようなページがすぐにヒットし、作者の名前が確認できる。

https://www.kurotani.jp/gallery/2643

Flag: 淀井_敏夫

✅exhibition (100pts / 61 solves)

history-art問題の人物は、とある展覧会の常連で、作品は何度も受賞しています。 その展覧会で>1922年、会友に推薦されて入会したものの、1924年に退会した人物がいます。 この人物の名前は? >Format: 姓_名

A person associated with the history-art challenge was a regular at a certain >exhibition and the artist's works won several awards. In this exhibition, there was an artist who was recommended for membership and joined as a member in 1922, but resigned in 1924. What is the name of this artist?
Format: Last name_First name

解法(ここをクリックして表示)

「淀井敏夫」でGoogle検索すると、以下のページが上位にヒットする。

https://www.tobunken.go.jp/materials/bukko/28321.html

その中に、二科展への出展記録が掲載されている。このペースで出展しているなら常連といって差し支えないだろう。


東京文化財研究所のWebサイトより

寡聞にして二科展のことを存じ上げないので、Wikipediaの記事を探す。

https://ja.wikipedia.org/wiki/二科会

すると、以下のような記述が確認できる。

横井弘三 - 入選:1915年。第1回樗牛賞受賞。1916年、二科賞受賞。1922年に二科会友に推挙されるも、翌年決別して会友を返上。

この記述は出典記事からも確認でき、概ね信頼できるものと判断できそうだ。

https://yuagariart.com/uag/nagano61/

Flag: 横井_弘三

✅birthplace (200 pts / 25 solves)

history-exhibition問題の人物が持つ別名には、ある画家が関連しています。 その画家の生家は最近特定されました。 生家のプラスコードは?
Format: XXXX+XX

The artist of the history-exhibition challenge has an alias that's linked to a painter. The birthplace of this painter was recently identified. What is the Plus >Code of the birthplace?
Format: XXXX+XX

解法(ここをクリックして表示)

まず、プラスコード(Plus Codes)とは、Googleが策定した地点表示コードである。緯度経度を簡略化して表記できるもので、Google Mapsにも標準で表示されている。


Google Mapsに表示されるPlus Codes

本題に戻ろう。
横井弘三は「日本のアンリ・ルソー」と呼ばれているそうだ。

https://ja.wikipedia.org/wiki/横井弘三

つまり、これはアンリ・ルソーの生家を探せという問題である。しかし、最近特定されたとはどういうことだろうか。よくわからない。

著名人の生家は観光地になっている気がするので、Henri Rousseau birthplace とGoogle検索するも、Lavalという地名がヒットする程度であり、具体的な家までは表示されない。精査すれば何か得られたかもしれないが、観光地であれば誰かが訪問したことを投稿しているのではないかと思い、先にSNSの投稿を検索することにした。

日本語で アンリ・ルソー 生家 検索してみると、X上でいくつか言及があった(検索結果リンク)。

ある個人ユーザーのSwarmのリンクを確認すると、地図がヒットする。しかし、Swarmは外部にジャンプできないようになっているので、拡大して地名を読んでみると、近隣にPromenade Anne d'Alègreと書かれている。公園のように見える。

Promenade Anne d'Alègre をGoogle検索すると、Lavalにある遊歩道であるとがわかる。これは先ほどの検索結果と一致するので、この線で進んで良さそうである。

先ほどXで見かけた画像と同じ建物が近隣にある。


Googleストリートビューより

Google MapsにはPorte Beucheresseという名称で登録されている。ここのPlus Codeを試してみると正解だった。

Flag: 369G+2J

なお、フランス語版Wikipediaにはアンリ・ルソーが右側の塔で生まれたと記載されていた。

https://fr.wikipedia.org/wiki/Porte_Beucheresse

✅pencil (400pts / 5 solves)

明治初期に仙台で鉛筆を作っていた人物の名前が、ある文献内で間違って記載されていた。 間違っていた名前を答えよ。

The name of the person who was making pencils in Sendai during the early Meiji period was incorrectly listed in a certain document. What is the incorrect name?

解法(ここをクリックして表示)

明治 仙台 鉛筆 などでGoogle検索すると、日本鉛筆工業協同組合のWebサイトが上位にヒットし、樋渡源吾という人物名が得られる。

http://www.pencil.or.jp/company/rekishi/rekishi.html

例年のOpen xINT CTFにおける歴史問題は難易度が高く、開催時間内に解けないことも多いため、ここまで確認した上で後回しにしていた。特に今回の問題は誤植を探す必要があり、検索が難しそうである。
しかし、後ほどSolves欄を見ると既に2名が解答していることがわかり、競技時間内に解ける可能性があると判断して調査を進めることにした。

「文献」ということで国会図書館の検索などを使い、樋渡源吾の名前で検索探してみるが、特に得られるものはなかった(もう少し頑張って探索すれば何か見つかるのかもしれないが、時間内では厳しい)。

先ほどの日本鉛筆工業協同組合のページに戻ってみると、以下のような記述がある。

(略)
仙台の樋渡源吾については謎の多い人物で詳細な情報が伝わっていなかったが、明治10年の内国勧業博覧会の出品記録によれば、「宮城県陸前国宮城郡仙台北二番丁上杉山通」に住居し、創業は小池の明治7年(1874)に対して、何とそれより15年も前の安政6年(1859)と記録に残っている。
(略)
(トンボ鉛筆伊藤眞吉顧問考察)

当時の住所をGoogle検索して文献がヒットしないだろうか……と思って試してみたものの、特に得られるものはなかった。しかし、内国勧業博覧会 出品記録 でGoogle検索すると、以下のページがヒットする。Next Digital Libraryというのは国会図書館の実験サービスのようで、OCRされた著作権期限切れの書籍に対して全文検索などが実施できるようだ。

https://lab.ndl.go.jp/dl/book/801850

とにかく、これが先ほどのページで示されていた「明治10年の内国勧業博覧会の出品記録」そのものであろう。
「樋渡源吾」で全文検索したいところだが、誤植ならばヒットしない。とりあえず雑に「鉛筆」で検索してみると、2件ほどヒットする。


https://lab.ndl.go.jp/dl/book/801850 より

77ページの鉛筆の項目に「樋渡源」(ひわたし げんご)ならぬ「樋渡源」(ひわたし げんきち)が記載されている。
旧字体だが「陸前国宮城郡仙台上杉山通」と書いてあり、前述の情報と一致する。


明治十年内国勧業博覧会出品目録 3 (p.77)より

Flag: 樋渡源吉

category: bus

✅top gear (200 pts / 41 solves / first blood)

「トップギア」シーズン11 エピソード4で、2人がバスに乗り込んだとき、映像に映りこんだバス停の名前は?
In Top Gear Season 11, Episode 4, what was the name of the bus stop that appeared on screen when the two of them got on the bus?

解法(ここをクリックして表示)

「トップギア」シーズン11 エピソード4 をGoogle検索する。世は大サブスク時代、様々な動画ストリーミングサイトの動画がヒットする。
筆者は幸いにもU-NEXTに加入しており、追加料金なしで視聴できた。ちなみにAmazonやApple TVなどでも配信されており、安価あるいは実質無料で視聴できた人も多いのではないだろうか。


https://video.unext.jp/episode/SID0048740/ED00282197

内容を確認すると、日本に来てスポーツカーVS公共交通機関で移動速度を競う回だった。もちろん真っ当に視聴していては時間が尽きるので飛ばしながら観ていくが、後半に京浜急行電鉄の駅を飛び出してバスに急いで乗り換えるシーンがある。2人はバスの最後尾に乗車したため、リアウィンドウ越しにバス停が見えるシーンがある。おそらく、このバス停を特定すればいいのだろうが、もう少し情報が欲しい。

このシーンの後、彼らはバスを降りて東京湾フェリー(くりはま丸)に乗り換える。つまり、このバスは京急久里浜駅~東京湾フェリー乗り場を結ぶ路線のはずである。ということで、Google Mapsで経路検索を試みる。


経路検索

これでバスが通過しうる経路がわかった。Top Gearの映像には、団地らしき建物とその間に通路が映っているように思われる。似たような場所を探すと「JVCケンウッド前」バス停が該当することがわかった。


団地と通路がTop Gear内の映像と一致する場所

Flag:JVCケンウッド前

❌bus stop (300 pts / 11 solves)

前方を走るバスが次に停車するバス停の名前は?
What’s the name of the next stop for the bus in front?

解けませんでした……😭

時間内にわかったところ(ここをクリックして表示)

Google Lensから奈良交通のバスであるとわかる。ナンバープレートが「638」と読み取れるため 奈良交通 638 などでGoogle検索すると、バスファンの方のブログ記事やX投稿などから、同社の葛城営業所所属の日野・レインボーであるとわかる。

葛城営業所の路線のうち、山間部に向かう路線を探すと2系統や7系統がヒットする。
YouTubeの車窓動画などを元にエリアを絞ろうと試みたが、時間切れとなった。

❌bus (500 pts / 3 solves)

このバスの座標を求めよ。
形式:Nxx.xxx Exxx.xxx

What is the coordinates of the bus?
Format: Nxx.xxx Exxx.xxx

解けませんでした……😭

時間内にわかったところ(ここをクリックして表示)

車体に弘南バスと書かれているので、ナンバープレートを基に 弘南バス 13-83 でGoogle検索すると、緑ナンバーについてまとめたページがヒットする。
https://www.wikihouse.com/Kantetsu1931/index.php?�Ŀ�200��13-01~14-00

この情報(車番や形式)を基に検索すると、弘南バスの青森営業所に所属している車両であると判断できる。

この営業所は「青森 - 黒石線」と「青森 - 五所川原線」を受け持っていることから、この路線沿いの似た場所をGoogle Mapsから探して1個ずつストリートビューに降りて確認していたが、見つけられずに時間切れとなった。

青森のバスには土地勘がある方なので解けないのが悔しいところ。

category: place

✅groovin'(200 pts / 21 solves)

この店の名前は?
What is the name of this shop?

解法(ここをクリックして表示)

DJブースがある飲食店だろうか。コーヒー関連の機械が多いように見える。そして後ろにはカニの絵が掲示されている。

特徴的なカニの絵が気になるが、ここを囲ってGoogle Lensを通しても特に得られるものがなかった。

クラブ(club)とカニ(crab)を掛けているように思われるので "crab" DJ coffee という文字列でGoogle画像検索を行う。なお、"crab"と引用符を付けたのは検索時にスペルミス扱いされないためである。

すると、一致したアイコンがヒットする。これは @crab.cultured というInstagramアカウントなのだが、残念ながらCTF開催日時点でNot foundになっており、アカウントが消滅したように思われる。


Crab Culturedのアイコン

何にせよ先ほどのカニはCrab Culturedに関連していることがわかったので Crab Cultured coffee でGoogle検索してみると、"House set at a breakfast party | ft. Sindhi Curry | Livestream Cafe"という動画がヒットし、添付画像の元ネタが判明した。しかし、撮影場所は記載されていないように思われる。


https://www.youtube.com/watch?v=wRCfEV3thsU

動画説明欄曰く、このDJはSindhi Curryという人物らしい。Sindhi Curry DJ でGoogle画像検索を行うと、似たような背景の店で演奏しているInstagramの動画がヒットする。

画像検索から直リンクにはならず、結局Sindhi CurryのInstagramトップページに飛ばされるが、少し遡ると以下の動画が確認でき、@livestreamcoffeeという店に言及がある。

https://www.instagram.com/p/C1OgnIhNFly/

この店名で検索した際のInstagramやFacebookの投稿から、同一の場所であると確認できる。

Flag: Livestream Coffee

なお、YouTube動画のタイトルに含まれる "Livestream Cafe" でGoogle検索しても、この店がヒットすることに後で気付いた。

✅Tatopani (200 pts / 20 solves)

この場所のプラスコードは?
https://x.com/kaidanmeguri/status/1852695312378253472
Format: XXXX+XX

What is the Plus Code for this location?
https://x.com/kaidanmeguri/status/1852695312378253472
Format: XXXX+XX

解法(ここをクリックして表示)

https://x.com/kaidanmeguri/status/1852695312378253472

単純にGoogle Mapsでネパールを表示して Tatopani と検索すれば出るのでは?と思ったが、どうやら別の場所にも存在する地名らしく、上記の投稿で言及された場所が上手くヒットしない。

ということでスクリーンショット内に記載されている"villa"を含めて、 Tatopani villa Nepal とGoogle検索すると、"レビューはなく、関係ないキノコの写真が追加されているだけ"という記述に一致する場所がヒットする。

Flag: 672Q+MW

✅building (300 pts / 1 solve / first blood)

https://www.5-tv.ru/player/5003603
このビルはどこにある?
Nxx.xxx Exx.xxx で示せ。

https://www.5-tv.ru/player/5003603
Where is this building located? Please specify using coordinates in the format >Nxx.xxx Exx.xxx.

解法(ここをクリックして表示)

リンク先はロシアのニュース動画だ。字幕には "ДОНБАСС" と書かれているため、ウクライナのドンバスにおける軍事衝突で住宅が損傷した、という報道であると思われるが、ロシア語がきちんと読める訳ではないのでGoogle Lensを使った画像検索や文字起こしを経て検索を行う。


文字起こしの例

その結果、以下の通り5TVの記事がヒットし、同じ動画が埋め込まれていることが分かる。

https://www.5-tv.ru/news/5003603/odin-celovek-pogib-ivosem-raneny-vrezultate-ataki-vsu-nadonbass/
https://dzen.ru/a/ZxhxqXI3kiEDY-bV

本文をGoogle翻訳すると

「1階から14階までの窓が破壊され、壁に穴があった。ゴルロフカのこの家の住民の朝はこうして始まった。ウクライナ軍はNATO口径155ミリを使用してその地域を攻撃した」

と記載されている。つまり、この建物は "Горловка"(露:ゴルロフカ、宇:ホルリウカ)という都市にあることが分かるものの、より詳細な地域名については記載がない。Google Mapsから総当たりしてもよいが、制限時間内には終わらないだろう。


記事のGoogle翻訳結果。なお、ロシア語でドネツィクは「ドネツク」、ホルリウカは「ゴルロフカ」となる。

すでにGeoconfirmedされていないだろうかとXを検索したが、特に得られるものはなかった。
https://x.com/search?q=geoconfirmed+Horlivka&src=typed_query&f=live

そこで、別のニュース記事を探す。
これはロシアが占領しているドンバス地域に対するウクライナ軍の攻撃によるものであるから、クレムリンの強い影響下にあるロシア側メディアには「ウクライナが攻撃を仕掛けてきた結果、住民の家に影響が出ているのだ」と喧伝する動機があるだろうし、この件に関する報道も複数見つかるはずである。

ただ、ドンバスは激戦地であり、画像検索では別の住宅などが多数ヒットしてしまうため、時期に注目した検索を行う。先ほどの5TVの記事は10月23日に出ていることがわかる。


"23 October"を意味している

ということは、攻撃が発生したのは前日(22日)ではないか。
地名と日付にロシア語表記を用いて、Горловка 22 окт とGoogle画像検索すると、同一の建物らしき画像がヒットする。

画像から飛んだページをGoogle翻訳すると、ゴルロフカのソルネチヌイ住宅地という記述がある。

https://dan-news.ru/foto/foto-prjamoe-popadanie-vsu-v-zhiloj-dom-v-gorlovke/

Yandexのマップに詳細が載っていないだろうか。記事の自動翻訳を解除して地名のロシア語表記を抜き出し、Yandex Map上で検索を行う。すると、団地のような地域が表示された。


https://yandex.com/maps/-/CDxY6S6g

しかし、ストリートビューがあるわけではないので建物探しが難しい。

そこで、先ほどの「ソルネチヌイ住宅地」に言及したニュース記事にあった画像を拡大すると、46と書かれた表示が見える。番地や建物番号だろうか。また、記事内のほかの画像からも周辺の建物の位置関係が読み取れる。


https://dan-news.ru/foto/foto-prjamoe-popadanie-vsu-v-zhiloj-dom-v-gorlovke/ より

先ほどの団地内を探すと 46 と記載された番地(建物?)があり、右クリックすると "vulytsia Bessonova, 46" と表示される。先ほどの画像も拡大すると、??ссонова と書かれているように見え、Bessonovaをキリル文字変換したときに出てくるものと一致する。

Google Mapsでも同じ場所を再確認し、ここの座標 N48.3286 E38.0572 がFlagであると考えて(表記揺れの範囲に収まっているだろうと考えて)送信したが、不正解となった。
その後、何度か小数点4桁目を調整するなどしたが不正解が続いてしまった。しかし、場所については正解しているはずだと確信があったのでDiscordで問い合わせを送信したところ、問題がメンテナンスに入り、Flag形式が修正(小数点以下3桁に変更)された上で遡及して正解になった。いずれにせよ建物は合っていたらしい。

比較的容易な問題だと思っていたため、結果を見て自分が唯一の正解者であることに驚いた(BUSの方が難しいと思っていた)。

✅mural (300 pts / 22 solves)

この壁面装飾を描いたアーティストに手紙を出したい。私書箱番号を教えてほしい。フラグは、数字のみ記入。

I’d like to send a letter to the artist who drew the mural. What's the P.O. Box number? Enter only the numbers.

解法(ここをクリックして表示)

作者名が書いてあるようには見えないので、素直にGoogle Lensに通す。
すると、複数のサイトに同じ壁画の画像が掲載されている。ユタ州にある作品のようだ。

https://substack.com/home/post/p-151189422

画像を拡大すると、右側に PATINTINGS by PATTi LEWIS と書かれており、連絡先の電話番号も描かれているように見える。また、"lewisartservices.com"というドメインも記載されている。


https://substack.com/home/post/p-151189422

ドメイン名を正しく読み取れているか自信がないのでLewis Art ServiceでGoogle検索したところ、Patti Lewis氏のサイトを見つけられた。正確には、PattiさんとJeffreyさんがご夫婦で活動しているようで、アーティストユニットとしてのサイトである。

https://www.lewisartservices.com/

Contactページに電話番号が記載されているので、まずはこれと共に PO Box でGoogle検索するが、正解になるものは見つからない。また、氏名とともに PO Box で検索しても特に得られるものはなかった。

依頼受け付け用に電話番号を広く公開している(壁画やネットに掲載している)アーティストなので、住所や私書箱なども何らかの資料には記載されているのではないか?と考え、"Patti Lewis" address Utah <末尾5405の電話番号> でGoogle検索すると、Webに公開されている雑誌記事がヒットする。幸い、全文検索ができるので Lewis などの文字列で検索すると、なぜか2つの電話番号が記載されている。


https://issuu.com/viewonmagazine/docs/web_file_july_aug_2019

今まで目にしなかった電話番号、すなわち <末尾5405の電話番号> PO Box でGoogle検索すると、電話帳か何かのサイトにJeffreyさんの情報がヒットする。

このPO Box の番号がFlagである。

✅lighthouse (400 pts / 18 solves / first blood)

写真手前の諸島にある灯台の灯台表番号/航路標識番号は?

In the foreground of the photo, you see a lighthouse on an island. What is the lighthouse directory number/navigation aid number?

解法(ここをクリックして表示)

低高度から撮影されたと思われる写真。画質から見ても、おそらく旅客機の窓から撮られたものではないだろうか。
空港の発着経路はパターンが限られているため、機窓から見える景色については、似たような画角の画像がWeb上に散らばっているはずであると仮定した。

ということで写真全体をGoogle Lensに通す……が、特に得られるものがなかった。

諦めて島部分だけを切り取ってGoogle Lensに通すと、以下のページがヒットし、ほぼ同じ形の島が掲載されていることが確認できる。和歌山県の島らしい。


https://tanabedivingservice.jp/tanabenoumi/ より

この島や灯台の正式名称は何だろうかとGoogle Mapsを眺めてみたところ、幸いにも灯台「田辺沖ノ島灯台」が登録されていた。

この名前でGoogle Mapsを検索すると、第5管区海上保安庁のサイトに灯台表番号が記載されていた。


https://www6.kaiho.mlit.go.jp/05kanku/tanabe/info/index_link-ninni/hyousiki/spec.htm より

Flag: 2918

なお、近隣には南紀白浜空港(SHM, RJBD)があるため、この写真はRWY15に着陸中の機体の左側座席から撮影されたものであるように思われる。SHMの便数は少なく、定期便ならJL213、JL215、JL219のいずれかのフライトである。
ちなみに、以下の図でGALASと示されている地点が田辺沖ノ島灯台の付近となる。


eAIP RJBD AD2.24-IAC-4より


ある日のフライト。約1300ft程度で田辺沖ノ島付近を通過している。

category: ONSITE

✅HUMINT1 (200 pts / 13 solves)

アヒル崇拝教団から熱心な勧誘を受けている人が3名、AVTokyo会場にいるとの情報を得た。 入団したら語尾に「ぐわっ」を付けなければならなくなるので、入団を思いとどまらせたい。 3人は信者から貰ったチャームを身に着けている。 該当人物を見つけたら、AVTokyoのキャッチフレーズを唱えながら乾杯しよう。 心を開いてくれたら、教団の秘密のキーワードを教えてくれるはずだ。それをフラグとして入力してくれ。
※乾杯チャレンジは、休憩時間のときだけやってください。

I received information that three individuals are being actively recruited by the Duck Worship Cult and are at the AVTokyo venue. If they join the cult, they will have to end their sentences with "gwa." I want to discourage them from joining. These three are wearing charms given to them by the followers. If you find them, raise a toast while chanting the AVTokyo slogan. If they open up to you, they should reveal the secret keyword of the cult. Please enter that as the flag.
Note: The toast challenge should only be done during break times.

解法(ここをクリックして表示)

xINT CTF名物のHUMINT問題。人を探し、合言葉を伝えてQRコードを読み取る問題である。
「チャームを身に着けている」という点は昨年のHUMINT問と同じようだ。

「AVTokyoのキャッチフレーズ」はNo Drink, No Hackである。とにかく、チャームをつけた人を見つけてキャッチフレーズと共に乾杯すればよい(当然ながら相手がドリンクを持っていないこともあるので乾杯が必須というわけではなさそう)。

すると、QRコードを見せてもらえる。


QRコードを読み取ると、ひらがなの文字列が得られる

ちなみに「HUMINT2」にも記載されているように、このチャームを持った人は会場内に3人いる。1人ずつ違うワードを持っているが、どれを入れても正解である。

Flag:みまん or みやげや or みけん

✅HUMINT2 (600 pts / 5 solves)

もしも3人全員を見つけられた場合、3つの単語を組み合わせると、ある特定の場所を指示してくれる。 その場所の名前を入力せよ。

If you manage to find all three individuals, combining the three words will point to a specific location. Please enter the name of that location.

解法(ここをクリックして表示)

「3つの単語」で場所を示していると言えばwhat3wordsであろう。これは昨年も出題されている。

昨年は何人がチャームを持っているか書いていなかったので無限に探し回るか、「この単語ってwhat3wordsで使われてる雰囲気があるな……」と気付くしかなかったのだが、今年は3人と明示されているので易しくなったと思う。

いずれにせよ、頑張って3人全員を探すと、みまんみやげやみけんの3語が得られる。しかし、順序は示されていないので3! = 6通りを自力で試す必要がある。

5個は特に意味のない場所を指すか無効なコードを示しているが、1個だけランドマークと言えそうな施設を指すものが出る。


what3words ///みやげや。みけん。みまん

Flag: Dodger Stadium

❌SIGINT (300 pts / 0 solves)

〇〇〇のスマホのモデル番号文字列は?

What is the model number string of the ****'s smartphone?

解けませんでした……😭

時間内にわかったところ(ここをクリックして表示)

なんもわからんのだが、素直に model number string で検索すると、BLE(Bluetooth Low Energy)にそういうCharacteristicsがあるらしい。


https://www.sensatec.co.jp/products/docs/BLE.pdf より

ということでBLEを使う問題なのだろうが、会場を右往左往するも ****'s smartphone という文字列を出している端末が見当たらない。

BLEのModel Number Stringは一度connectしないと取得できないらしい。数が多いのでModel Number Stringの取得自動化を試みた。
BLEのことはあまりわからないのでChatGPTにMacで動作するコードを書かせてみた。

import asyncio
from bleak import BleakScanner, BleakClient

MODEL_NUMBER_STRING_UUID = "RANDOM UUID HERE"

async def get_model_number(device):
    try:
        async with BleakClient(device.address) as client:
            if await client.is_connected():
                model_number = await client.read_gatt_char(MODEL_NUMBER_STRING_UUID)
                return model_number.decode()
            else:
                return "N/A"
    except Exception as e:
        return "N/A"

async def scan_and_connect():
    devices = await BleakScanner.discover()
    for device in devices:
        model_number = await get_model_number(device)
        print(f"Device: {device.name}, Address: {device.address}, Model Number: {model_number}")

loop = asyncio.get_event_loop()
loop.run_until_complete(scan_and_connect())

実行すると以下のようになる。

しかし、問題文に記されている 〇〇〇のスマホ ****'s smartphone に該当するものがわからないし、それらしき情報すら得られていない。とりあえず拾えた iPhone14,6 などを1個ずつ入れてみるも不正解となり、答えがわからない状態で時間切れを迎えた。

戦略と感想

来年以降に参戦される方の参考になればと思い、今年もわたしの戦略や経過をご紹介します。

装備

  • PC(MacBook Air M1)
    • 昨年と同じ
  • Android端末
    • ごく普通のAndroid端末です。
  • ESP32
    • SIGINT問で使うことがあるかと思って持参。電源すら入れませんでした。不要だと思います。
  • SDR受信機
    • もし狂ったSIGINT問が出たらどうしよう……と思って半ばネタで持参。狂ったSIGINT問題は出ませんでした(当然)。

なんだかんだMacBookはバッテリが持つので、今年はポータブル電源を持参しませんでした。また、昨年時点で会場のWi-Fiが安定していたので、ポケットWi-Fiなども持参していません。

少なくとも今年は充電スポットも提供されていたので、来年以降も電源は持参しなくていいかなと思います。

競技中の戦略と経過

14時30分の競技開始と共にGoogle Docsを作成し、見つけた情報などをここにペタペタ貼っていきます。後でwriteupを書きやすくするために問題文などもコピペしておきます。また、画像も一気にダウンロードしておきます。ここで10分ほど費やしてしまったので初動は出遅れた感がありますが、必要な準備だと割り切りました。
もちろん、この段階である程度問題の目星をつけておきます(あんまりアテになりませんけどね)。

2023年は立席のテーブルで足を痛めてしまったので、今回は序盤から会場の隅っこに座ることにしました。身体的疲労は能率に影響を及ぼすので、解きやすい環境を整えるのは大事だと思います。

例年易しい whois から解き、そのまま art を解きます。このあたりは100点問題で、幸いにも検索すれば一瞬で出る難易度だったので、連続して正解できました。

続いて noodleamore に取りかかるのですが、点数の割に難しく、一瞬で出るような雰囲気ではなさそうです。もしかしてall greenもややこしいのでは?と思って後回しにしました。

気を取り直してジオロケっぽい top gearに取りかかりました。サブスクで視聴できたので助かりました。


開始から約30分のグラフ(top gearまで)

しかし、Solves欄を見るとall greenの正解者数が順調に増えており、普通に解ける問題である可能性が高いと判断して取り組むことにしました。拡大してみると普通にIDが書いてあることに気づき、比較的すぐに正解できました。

同じく正解者数が増えている amore にも取り組み、選択範囲によって検索結果が微妙に変わるLensガチャを回し続けて無事(?)正解。

続いて groovin'Tatopani と比較的易しめの200点問題を連続で正解します。

その後、building は10~15分程度でSolveできたのですが、Flagフォーマットの問題で少し悩みます。場所についてはかなり確証を持っていたため、早い段階で問題の不備がないかDiscord上で問い合わせ、正解の判定をいただきました。


building解答まで

開始から1時間30分ほど経過したころ、300点問題の mural もGoogle LensとGoogle Dorkingを駆使して正解します。残り時間を考えると、そろそろ高難易度の問題に手を付けたいところです。もちろん、この段階でも高難易度問題を含めいろいろな問題をつまみ食いしてはいるのですが、どれに注力するか迷うところです。

とりあえず lighthouse が思ったより容易に解答できたので、BUSカテゴリの問題を色々見てみるわけですが、これがどうも難しい。この時点で正解者は何名か出ていたので、競技時間内に解答不能な問題ではないと思うのですが、探し方が悪かったのでしょう。

ということで、こちらも正解者が多く出ているhistoryカテゴリの問題に移ります。苦手意識があるのですが、正解者が多いということは例年の高難易度history問題とは別のはず。
案の定、exhibitionbirthplace を比較的短時間で正解できました。pencil は厳しいかなと思って後回しにして、セッション合間の休憩時間にしか行動できないONSITEカテゴリに切り替えていきます。ONSITE問題は合計で1100点あり、これを取られると逆転される可能性が高く、優先度高めで考えています。


birthplace解答まで(16時41分ごろ)

この時点で2時間30分が経過して17時台となっていましたが、幸いにも HUMINT1 の人捜し(1人)にはすぐに成功し、200点を得ます。しかし、休憩時間中に3名全員を見つけることはできず、セッションが始まったので通常問題の解答に移ります。

noodleの正解者が増えていることに気づき、そういやInstagram見てないな……と思って調べたところ、無事に正解。次の休憩時間で HUMINT2 にも挑むのですが、2人目までしか見つけられません。

そうこうしているうちに pencil の正解者が増えてきたことから、これ今年のhistoryカテゴリは最終問題も行けるんじゃないか……?と思い、調査を再開します。すると、思っていたよりも早く正解に辿り着きました。


pencil解答まで(18時9分ごろ)

次の休憩時間で3人目を見つけてHUMINT2を無事達成。また、HUMINT2と並行してSIGINTも狙っていましたが、特に正解できる気配がないので途中で諦めました。この時点で確か19時前頃だったはず。

終了間際はスコアボードが非表示になりますが、非表示になる前の時点で1000点以上の差をつけていたので概ね終了まで耐えられるのでは……?と思いつつ、油断はできないと思ってBUSカテゴリを攻めます。

しかし、残念ながら解答に至らず、3700点で競技終了となりました。
BUS解けていれば4000点の大台に乗れたのか……と思うとちょっと悔しいですね。

感想

前回に引き続き2連覇、チーム戦だった2022年から通算で3連覇を達成できて嬉しく思います。

昨年から続く個人戦での戦い方もある程度わかってきた感じがあり、今回は実力を発揮できたと思います。しかし、得意としているジオロケーション問題での正解数が少ない(特にBUS系をあまり解けていない)など、課題は残っていると感じています。Open xINT CTFは全完を想定していない難易度・問題数で構成されているようですが、いずれは競技時間中に全完してみたいですね。

また、これまで見たことないプレイヤーの方々も順位表に登場しており、新規プレイヤーが増えてきたことも嬉しく思いました。新規プレイヤーでも活躍できるのがOSINT CTFの良いところですね。

最後となりましたが、ハイクオリティかつ面白い問題が揃ったCTFを運営してくださったpinjaのお三方に感謝を申し上げます。本当にありがとうございました!
2025年も楽しみにしています。

Discussion