DIVER OSINT CTF 2026 Writeup

DIVER OSINT CTF 2026 に参加しました。 DIVER OSINT CTF は、2024 年から毎年開催されている OSINT 問のみの CTF です。

https://diverctf.org/

結果

10,300 ポイントを獲得し、867 チーム中 22 位でした。 1 人のチームでは最も高い順位らしいので、満足しています。

過去の順位も含めると最も低い順位でしたが、参加者が増えていることや全体的なレベルが上がっていることを考えると健闘した方じゃないかと思っています。

開催年順位総チーム数
20244512
202517853
202622867?

方針

2025 年の参加時に、問題が多く 1 人では対応しきれないことは知っていました。 そのため、まずは AI に投げ、それっぽい回答を得たら一度提出してみるという方針で進めました。 多くの問題には提出制限がありますが、AI の回答に 1 提出枠を使う価値はあるだろう、という考えです。

実際には、ほとんどの時間で AI が 2 問、人間が 1 問を並列で対応していました。 人間の介入なしに解けた問題も多かったため、悪くない方針だと感じました。

なお、AI は GPT-5.6 Sol High(ChatGPT Plus)、Claude Opus 5 High(Claude Pro)、Gemini 3.1 Pro(Google AI Pro)を用意していました。 使用枠を節約したかったため、GPT は Web アプリ上で使いました。

問題

問題文は GitHub で公開されます。

diver-osint-ctf/writeups: Official Writeups for DIVER OSINT CTF

geo

✅ F3 (100 pts, 244 solves)

画像を Google レンズで検索していたら、似た看板を見つけました。

✅ elevation (481 pts, 51 solves)

Opus 5 に投げたところ、Maa- ja Ruumiamet というエストニアの行政機関が以下の地図を公開していることを知ります。

後者で建物を選択すると、e-ehituse platvorm という建物情報のプラットフォームへのリンクが出てきます。

このプラットフォームでは建築許可や工事の資料にアクセスできるようになっているようです。 資料には絶対高度が記載されていますが、小数第一位までしか書かれていません。 試しに最も大きな値を提出してみましたが WA でした。

Opus と会話を続けていると、同じ機関が点群データを公開していることを知ります。

Download Elevation Data | Geoportal | Estonian Land and Spatial Development Board

QGIS に laz ファイルを読み込ませ、建物だけを切り抜いてフラグを得ました。

❌ kaitai1 (450 pts, 81 solves)

地図で道を 1 本間違え敗北。

✅ kaitai2 (390 pts, 119 solves)

Google で「世田谷区 北沢 土地計画」と検索すると、次のページが出てきます。

下北沢駅周辺地区 | 世田谷区公式ホームページ

電柱の位置に「補助54号線」という道路を作る計画があることがわかります。Google で検索すると、次の都市計画があることがわかります。

東京都市計画道路幹線街路補助線街路第54号線 - Wikipedia

Wikidata ID が分からなかったので残りは GPT-5.6 に投げました。

✅ kaitai3 (498 pts, 19 solves)

Google 検索で次の記事を見つけます。

世田谷区の地図を見ながら、古き時代に想いを馳せる。古地図から見る街の移り変わり (2ページ目)

目的の場所の近くには 1985 年にイトーヨーカ堂があったようです。 「イトーヨーカ堂」と「イトーヨーカドー」を提出した結果どちらも WA でした。

古地図を見つけるしかないと思い、国立図書館デジタルコレクションを探しますが、出てきませんでした。

諦めて YouTube を見ていると、1978 年頃の地図が映った次の動画を見つけます。

1987年  昭和の下北沢に少しだけタイムスリップ ~Old Shimokitazawa~ - YouTube

目的の場所の近くにある店の名前で提出しますが、これも WA でした。

さらに探していると、平成初期の下北沢の動画を複数上げている人を見つけます。 1 つずつ見ているうちに、次の動画にたどりつきます。

1990 下北沢 商店街 901222 NE-HV - YouTube

この動画は下北沢駅の南側から北側にかけて撮影されており、一番街が映っています。

2 分 35 秒を見ると、画面中央の電柱の側に店があることに気づきます。

悪あがきのつもりで店の名前を提出したところ、なんと通ってしまいました。

✅ sprej (178 pts, 203 solves)

GPT-5.6 に投げたところ、47 分後に WA を回答しました。

思考の過程を聞いていくうちに、登記局 ČÚZK のデータにアクセス出来ていないことがわかりました。

そのため、人間が ČÚZK にアクセスして解きました。

✅ trot (491 pts, 35 solves)

FIAT(Abarth?)が写っていたのでイタリアかと思っていました。 しかし、ナンバープレートがイタリアのものではないため違和感がありました。

動画をよく見ると、冒頭に映る薬局に、"PH" から始まる単語が書かれていることに気づきます。 イタリア語では薬局を "farmacia" と言うことを知っていたので、違う国であることを考えます。

復活していた GPT-5.6 に薬局を "ph" から始める語で表現する国を聞くと、フランスであることがわかります。 雰囲気的にも合っていそうだと思いました。

この情報をもとに、動画に映っている特徴的なプランター?を Google レンズにかけると、次の記事が出てきます。 (注: テロに関する記事です。)

Bastille Day attack: truck kills at least 80 people in Nice – in pictures | Bastille Day truck attack | The Guardian

4 枚目の画像に、動画と同じプランターとポールが写っています。 よって、都市はニースだとわかります。

最後に overpass-turbo でニース内の彫刻と薬局が 25m 以内にある場所を検索して、詳細な場所を得ました。

✅ evacuation (318 pts, 153 solves)

VPN を使用して画像を得ました。

ホテルがあるとされる Bloomfield を Google マップで見ていたところ、画像と同じ壁の色のホテルを見つけました。

レビューを確認していると、画像の位置が映った動画を見つけました。

Best Western Territorial Inn & Suites - Google Maps

❌ houses (484 pts, 46 solves)

ナンバープレートの地名をエスパーしようとした結果京都に行ってしまい敗北。

✅ stargazing (417 pts, 104 solves)

次の条件の overpass turbo のクエリを、GPT-5.6 に書いてもらいました。

  • カザフスタン内
  • 歩道橋
  • 片側 2 車線
  • 中央分離帯なし

結果の GeoJSON を Google Earth に取り込み、1 つずつ確認して対象の歩道橋を特定しました。 階段が同じ方角を向いている歩道橋が少なかったため、航空写真を見るだけで絞り込めるものが多く、助かりました。

あとはカザフスタンで人気のある地図アプリを GPT-5.6 に教えてもらい、カフェの名前を得ました。

sns

❌ link (493 pts, 32 solves)

小红书のアカウント登録に失敗し敗北。

recon

✅ shopping1 (100 pts, 313 solves)

GPT-5.6 が 5 分で解きました。

✅ shopping2 (275 pts, 170 solves)

shopping1 のユーザの Gist に Cloudflare Workers の情報を含む画像がありました。

Worker の名前を Google で検索して解きました。

crypto

✅ druk (407 pts, 110 solves)

Opus 5 に投げたところ、対象の施設の航空写真を含む記事を見つけてきました。

The Secret Locations Of Bhutan's Royal Bitcoin Mines

Google Earth でダガナ県の航空写真を見ていたら、施設の場所を見つけました。

✅ stable (339 pts, 144 solves)

GPT-5.6 に投げたところ、Explorer のアクセスにつまづいていました。

検索結果の PDF と JPYC の取扱店というヒントを与えたところ、24 分で解きました。

transportation

✅ air2air2 (445 pts, 85 solves)

Google レンズで撮影者が AirJapan に乗っていることがわかります。

AirJapan について調べると、4 機しか運用していなかったことがわかります。

一方、AirCanada は大量の機材を持っているため、機種から絞りこむことを考えます。

GPT-5.6 と相談した結果、ボーイング 777-300 であると判断します。 AirCanada は 19 機の 777-300 を運用しているようです。

AI を信じきれなかったため、ADS-B Exchange を使って人力で総当たりを行いフラグを絞り込みました。

✅ conflicted (311 pts, 156 solves)

Opus 5 が解きました。

✅ dx (162 pts, 208 solves)

GPT-5.6 が 4 分で解きました。

✅ telelens (337 pts, 145 solves)

Opus 5 に JAL の機体記号と Air Niugini の機体の存在を伝えたところ、02/09~02/11 のいずれかという回答を得ました。

Flightera の履歴が欲しいと言っていたため、人間がアクセスしてページの画像を渡したところ、02/10~02/11 の 2 日間に絞り込みました。

✅ 250 (461 pts, 72 solves)

GPT-5.6 に投げたところ、25 分後に GTFS-RT アーカイブへアクセスできないという回答を得ました。

Python のコードを出力させ、手元で実行したところ、フラグを得ました。

history

✅ 39 (296 pts, 162 solves)

Opus 5 に投げたところ、イベントの名前と関連する動画を見つけてきました。

【昭和の日本】凍った湖で日本初の氷上カーレース開催!群馬県赤城山の山頂に集った58人がスピードを競う | 1970年 - YouTube

動画に 39 番をつけた車が映っているため、Google レンズにかけて車種を得ました。

✅ kohaku (100 pts, 456 solves)

虚白庵について検索すると、大まかな場所と航空写真が出てきます。

Google Earth で 2010 年以前に遡り、航空写真に合う場所を探すと正確な位置がわかりました。

✅ accident (398 pts, 115 solves)

GPT-5.6 に投げたところ、El Mundo という新聞があり、フロリダ大学が紙面を公開していることを知ります。

El Mundo - UF Digital Collections

1955/05/05 の記事を渡したところ、対象の事故の情報がないことがわかります。

半分諦めかけていましたが、翌日の新聞の一面を見ていたら偶然フラグを見つけました。

❌ tuition (483 pts, 48 solves)

画像検索で敗北。

company

✅ arctic (277 pts, 169 solves)

GPT-5.6 が 17 分で解きました。

✅ cooking (100 pts, 384 solves)

GPT-5.6 が 7 分で解きました。

hardware

✅ yonezu1 (100 pts, 316 solves)

GPT-5.6 が 2 分で解きました。

✅ yonezu2 (100 pts, 245 solves)

GPT-5.6 が 5 分で解きました。

yonezu1 で使ったスレッドに続けました。

disinfo

✅ rch (500 pts, 124 solves)

X で "05-5140" と検索すると、米中首脳会談のために大統領専用車を運んでいると書いてある投稿が見つかります。

投稿

念のためもう少し調べると、国内での専用車の目撃情報があることを見つけます。

Has ‘the Beast’ arrived in Beijing? Trump’s motorcade SUVs spotted before visit | South China Morning Post

misc

✅ nui (100 pts, 242 solves)

GPT-5.6 が 14 分で解きました。

✅ paint (400 pts, 114 solves)

ARTexpress に載っている画像を反転せずに Google レンズにかけると、次の Instagram の投稿が出てきます。

投稿 1

画像を拡大すると、作者が "James Kamande"、題名が "The Maiden" であるとわかります。

これらの情報で検索すると、反転された画像が載った別の投稿が見つかります。 この投稿では、最初に見つけた投稿と同じ作者と題名で紹介されています。

投稿 2

反転されていない画像とされている画像で同じ題名が使われていたので一瞬混乱しましたが、これで正解でした。

✅ buyout (320 pts, 152 solves)

GPT-5.6 が 12 分で解きました。

✅ sunny_saturday (436 pts, 91 solves)

動画より、撮影された時間とソニーパークに展覧会の広告があることがわかります。

検索により展覧会の期間(04/24~05/31)はわかりますが、広告がいつから出ているかは不明です。 そのため、Google マップのレビュー、X の投稿、Instagram の投稿を見て広告が出た日を探します。

すると、04/22 頃ということがわかります。

投稿

(04/22 の前の土曜日には広告が無かったことを確認していた気がするのですが、メモをするのを忘れて URL が行方不明です。)

また、この過程でソニービルの入口でエルメスのポップアップイベントが行われていたことを知ります。

エルメス ビューティの世界を体感する限定イベントが銀座で、“梨香る”リップオイルの先行発売も - ファッションプレス

動画ではポップアップイベントのタワーは無さそうです。 そのため、撮影日は以下の 3 日に絞られます。

  • 04/25
  • 05/02
  • 05/09

ここから更に天気を使って絞り込もうとしましたが、どの日も似たような記録だったため絞り込めませんでした。

提出制限が 3 回なので、3 個の候補を順に提出してみることにしました。

高架の上に人がいたことには最後まで気づきませんでした。

military

✅ 0802 (493 pts, 32 solves)

問題で言及されている画像を Google レンズにかけると、より多くの画像が掲載されている次の記事が出てきます。

မိုးကုတ်မြို့အနောက်ပိုင်းကို စစ်အုပ်စု လေကြောင်းတိုက်ခိုက်မှု ၁၃ ဦးသေပြီး ၂၀ ဝန်းကျင်ဒဏ်ရာရ... - Maun

4 枚目の画像をよく見ると、奥にガソリンスタンドのような建物があることに気づきます。

空爆が起きた都市の中でガソリンスタンドを探すと、次の結果が出てきます。

KZH (004) Kyat Pyin - Google Maps

屋根の色や周辺の道路の形が写真と一致します。

時間がなかったので 4 枚目の画像の場所付近を回答したところ、正解でした。

❌ diode (460 pts, 73 solves)

ロゴを検索することにこだわりすぎた結果、ダイオードの種類で検索する発想に至らず敗北。

感想

AI の進歩により 1 人あたりの調査量が増えたため、以前よりも人数差が効いてくるようになった感じがします。 1 人のチームでは時間不足のため、検証が十分できずに WA を提出する場面が多かったです。 検証役の AI も用意すると余裕ができそうですね。

運営の皆さん、ありがとうございました。