🐧

DIVER OSINT CTF (2025) Writeup

に公開

はじめに

https://ctfd.diverctf.org/

本記事では、2025-06-07 12:00 JST ~ 2025-06-08 12:00 JSTに開催されていたDIVER OSINT CTF (2025)についてのWriteupを記述します。
今回のDIVER OSINT CTFでは、pinjaチームにゲストメンバーとして参加し、4位でした!
チームメンバーのluminさん、awamoriさん、ykameさん、himitu.tokinaさん、yu1kさんに心から感謝を申し上げます。

https://x.com/pinja_xyz/status/1931564286457090315

本Writeupの執筆にあたって、他のメンバーの方に許可をとっていますが、私視点によるものであるため、情報の抜け落ちや誤りが発生している可能性があります。

開催概要・制度

  • CTFdを用いたJeopardy方式
  • OSINTだけのCTF
  • 問題文・ルールなどは日本語と英語の2言語で提供
  • 開催時間は24時間
  • 各チーム最大6人まで登録可能
  • 問題によって試行回数制限あり
  • 誤答ペナルティあり
    • 同じ問題について3回以上誤答すると、誤答してから15分の間、その問題へのフラグの送信が不可能に
      • 4回目以降のフラグ提出についても、誤答すれば、誤答してから15分の間、その問題へのフラグの送信が不可能になる
    • より本来のOSINTに近づけるために設定された項目だと思うが、個人的にはこの誤答ペナルティは甘い設定だと思った
      • 本来のOSINTが、気軽に答え確認なんてできないことを考えると、ペナルティは1時間ぐらいあってもよかったのではないかと思う(そもそも、本来のOSINTでは答えなんてわからない、答えがOSINTで見つかるかどうかもわからないことが多いが)
  • 問題カテゴリは、welcome、introduction、geo、recon, transportation、history、military、hardware、company、reportの10個
  • 各問題に、運営が想定する難易度がタグ付けされている
    • 難易度はintroduction, easy, medium, hardの4段階
    • 昨年もそうだったが、DIVER OSINT CTF運営が想定する難易度は当てにならない傾向があるため注意
  • 点数はダイナミックスコアリング方式
    • 各問題500ポイントからスタートし、解いたチーム数に応じて点数が減少していく
      • 最終的には、100ポイントまで減少する
    • welcome問題、後述する記述式問題以外の問題に適用
    • 上述した運営想定の難易度よりも、こちらの方が問題の難度を如実に表すことになっている
  • 運営採点による記述式問題があることが事前にアナウンスされていた
    • 難易度mediumの問題を全問正解したチームのみ解答権が付与される
  • 最終的に、850チーム、1655人が参加

公式Writeupは以下からアクセスできます。
https://github.com/diver-osint-ctf/writeups/tree/main/2025


では、ここからは、pinjaチーム全体のWriteupを示します。
問題文については、基本的に日本語版のみ載せます。
問題掲載順は、運営が競技終了後にDiscordで提供したsection.md(問題の最終的なポイントやSolves数がまとめられたマークダウンファイル)の順番になっており、解いた順番にはなっていません。
記述式問題に関しては、難易度mediumの問題を全問正解できなかったため取り組めておらず、本Writeupには記載していません。

welcome

✅welcome (Difficulty: none, 10 points, 668 solves)

DIVER OSINT CTF 2025へようこそ!

あなたのチームメンバー全員がルールと規約に同意できたら、Discordの #announcement チャンネルからFlagを見つけて入力してください。
正解すると、ほかの問題がアンロックされます!
Flag形式: Diver25{flag}

ヒントについて

このCTFでは ヒントの閲覧による減点はありません 。ぜひ活用してください! 各問題の「Unlock Hint for 0 points」をクリックすると、ヒントを表示できます。

試行回数制限について

問題ごとに回数制限があります。"attempts" の表示には十分気をつけてください。
詳細は Flagの提出方法について に記載してあります。必ず読んでください。

Discordの #announcement チャンネルに投稿されたフラグを答える問題。

ルールやFlagの提出方法については確認済みなので、Discordの #announcement チャンネルに投稿されたフラグを提出すればOK。
しかしながら、開始直後で問題サーバが重く、中々提出できなかった。
一番最初にフラグ投稿フォームにたどり着けた、himitu.tokinaさんが提出。

Flag: Diver25{We_understand_the_rules_and_how_to_submit_flags!} (Solved on June 7th at 12:01:05 PM) [himitu.tokina]

本問題を解くことで、記述式問題以外の全問題が開放される。

introduction

✅bx (Difficulty: introduction, 100 points, 469 solves)

画像 / Picture:
https://drive.google.com/file/d/1FocVup_AZSMfN8XHNtw2qZWOp6UjGCGw/view?usp=sharing

この写真で見える "BX" という看板の座標を答えなさい。

Free Hint:
地図内の検索欄に地名や座標を入力すると、その地点までジャンプできます。 / Enter a place name or coordinates in the search field in the map to jump to that point.

リンク先の画像

BXよりも着目すべきは、BX横の建物の名前。

「カトリック上野教会」と書いてあるのが見える。
「カトリック上野教会」と検索すると、すぐにみつかる。

https://www.google.com/maps/place/カトリック上野教会/@35.7185425,139.7806432,3a,75y,125.06h,93.52t/data=!3m10!1e1!3m8!1s3jWlvriOk8ySDVGl_vweBw!2e0!6shttps:%2F%2Fstreetviewpixels-pa.googleapis.com%2Fv1%2Fthumbnail%3Fcb_client%3Dmaps_sv.tactile%26w%3D900%26h%3D600%26pitch%3D-3.5242356496186034%26panoid%3D3jWlvriOk8ySDVGl_vweBw%26yaw%3D125.05649008429538!7i16384!8i8192!9m2!1b1!2i34!4m14!1m7!3m6!1s0x60188e9adeeda60f:0x656ba98fd86a0141!2z44Kr44OI44Oq44OD44Kv5LiK6YeO5pWZ5Lya!8m2!3d35.7183294!4d139.7809779!16s%2Fg%2F11t3zk20yz!3m5!1s0x60188e9adeeda60f:0x656ba98fd86a0141!8m2!3d35.7183294!4d139.7809779!16s%2Fg%2F11t3zk20yz?entry=ttu&g_ep=EgoyMDI1MDYxMC4xIKXMDSoASAFQAw%3D%3D

場所を調整して、フラグ提出。

Flag: 35.7181927297, 139.7809264288 (Solved on June 7th, 12:54:52 PM) [awamori]

✅document (Difficulty: introduction, 100 points, 280 solves)

アメリカ海軍横須賀基地司令部(CFAY)は、米軍の関係者向けに羽田空港・成田空港と基地の間でシャトルバスを運行している。2023年に乗り場案内の書類を作成した人物の名前を答えよ。
Flag形式: Diver25{George Washington}

Free Hint:
情報源に記載されている通りの形式で答えてよい。 / You can answer in the format as described in the source.

「cfay shuttle bus」と検索すると、PDFがヒットする。

そのPDFに対して、Exiftoolでメタデータを確認すると、「Author」欄に作成者名が書かれている。

Flag: (運営からの要請により名前はマスクしています) (Solved on June 7th, 12:25:46 PM) [lumin]

✅finding_my_way (Difficulty: introduction, 100 points, 408 solves)

34.735639, 138.994950 にある 建造物 の、OpenStreetMapにおけるWay(ウェイ)番号を答えよ。
Flag形式: Diver25{123456789}

Free Hint:
「建造物」は「地物」の一種である / a "building" is categorized into "features"

OpenStreetMapに座標を入力して、「地物を検索」すれば見つかる。

Flag: Diver25{568613762} (Solved on June 7th, 12:41:01 PM) [awamori]

✅flight_from (Difficulty: introduction, 100 points, 362 solves)

画像 / Image:
https://drive.google.com/file/d/14LSICiwmUqG9xqAfAm75IVdGd7P12uoy/view?usp=sharing

このヘリコプターが出発した飛行場のICAOコード(4レターコード)で答えよ。
Flag形式: Diver25{RJTT}

Free Hint:
データを入念に確認してください。あなたのOSINT能力を期待しています。 / Confirm the data carefully. We expect your OSINT ability.

リンク先の画像

画像を見ると、立川から飛んでいることがわかる。
https://ja.wikipedia.org/wiki/立川飛行場
より、立川飛行場のICAOはRJTC。

Flag: Diver25{RJTC} (Solved on June 7th, 12:28:37 PM) [lumin]

✅hidden_service (Difficulty: introduction, 100 points, 354 solves)

添付ファイルを確認して、Flagを獲得してください!
See the attached file and capture the flag!
Flag形式 / Flag Format: Diver25{xxxxxxxxxxxxxxxxx}

添付ファイル

画像に書いてあるURLを文字起こしして、Tor Browserでアクセスするだけ。
ChatGPTにざっくりOCRさせて、細かい点を修正した。

URLは、http://diverahbwzfukwflslim73j7qtthfkesqvfh42obqk4cxrxwtajk7myd.onion/となる。
上記URLにTor Browserでアクセスすると、以下のように表示される。

以上より、Diver25{w3lc0m3_70_d4rkw3b!}が答え。

Flag: Diver25{w3lc0m3_70_d4rkw3b!} (Solved on June 7th, 12:11:13 PM) [zackey-heuristics]

✅louvre (Difficulty: introduction, 176 points, 181 solves)

ルーブル美術館の公共Wi-Fiアクセスポイントのうち、以下の条件を満たすもののベンダーを答えよ。

  • 情報は2025年2月28日に収集されており、オンライン上で確認できる。
  • ベンダーはBSSIDに準拠して判定せよ。

Flag形式: Diver25{Company Name} (例: Apple Inc.の場合、Diver25{Apple Inc.} となる。)

https://contact.louvre.fr/hc/en-gb/articles/12853523479453-Do-you-offer-WiFiより、「Louvre_Wifi_Gratuit」が提供されていることがわかる。

https://wigle.net/を使って、以下のように検索すると、2025-02-28に収集されたものが見つかる。


BSSIDは、「50:60:28:4E:17:E0」だとわかる。
あとは、https://hwaddress.com/で検索をかける。
https://hwaddress.com/oui-iab/50-60-28/

「Xirrus Inc.」だとわかる。

Flag: Diver25{Xirrus Inc.} (Solved on June 7th, 12:38:21 PM) [lumin]

✅night_accident (Difficulty: introduction, 100 points, 269 solves)

動画 / Video:
https://www.youtube.com/watch?v=jHgqCpJNL28

この動画で、車とバスが衝突しそうになった場所はどこか。
In this video, where did the car and bus almost collide?

content warning:
衝突には至らないものの、交通事故のようなシーンがあります
There are scenes that do not result in a collision, but are similar to a road accident.

動画をじっくりみると、「SBS Transit」とかかれており、シンガポールだとわかる。
また、バスをよく見ると、サービス番号52番と58番のバスが映っていることがわかる。

https://busrouter.sg/#/services/58
で得られたバスのルートを辿っていくと、動画の場所と同じようなところを見つけることができる。
https://www.google.co.jp/maps/place/Bishan+St.+13,+シンガポール/@1.3482195,103.8485868,3a,75y,260.49h,77.51t/data=!3m8!1e1!3m6!1skIhLNPl2vobA2M4VgU08nA!2e0!5s20110301T000000!6shttps:%2F%2Fstreetviewpixels-pa.googleapis.com%2Fv1%2Fthumbnail%3Fcb_client%3Dmaps_sv.tactile%26w%3D900%26h%3D600%26pitch%3D12.489462142839372%26panoid%3DkIhLNPl2vobA2M4VgU08nA%26yaw%3D260.4940249708269!7i13312!8i6656!4m7!3m6!1s0x31da1713be9ba2e7:0x68e690560128bb72!8m2!3d1.3493515!4d103.8539786!10e5!16s%2Fg%2F119w0df7h?hl=ja&entry=ttu&g_ep=EgoyMDI1MDYwNC4wIKXMDSoASAFQAw%3D%3D

Flag: 1.3482727770697274, 103.8485711069044 (Solved on June 7th, 1:52:03 PM) [yu1k]

✅p2t (Difficulty: introduction, 377 points, 112 solves)

この写真の左側に掲示されている写真には、ある動物が写っている。その名前を、日本語で書かれている通りに答えよ。
Flag 形式: Diver25{シバイヌ}

添付ファイル

画像の中央には「ハシブトガラス」、右端には「立山」というワードが映っている。
「立山 ハシブトガラス」と検索すると「ライチョウ」もよくヒットする。
「立山 ライチョウ ハシブトガラス」と検索ワードを変え、粘り強く調べると、以下の記事がヒットする。
https://yachou.info/murodoudaira-raichou/
記事をスクロールしていくと、問題として提供されているハシブトガラスの写真を見つけることができ、その横には「トビ」の写真がある。

Flag: Diver25{トビ} (Solved on June 7th, 2:52:32 PM) [himitu.tokina]

✅ship (Difficulty: introduction, 100 points, 363 solves)

これは、ある組織が運用する船舶である。もし将来、この船が外国に売却されたとしても、変わらない番号を答えよ。
Flag形式: Diver25{現地語での船名_番号}(例: 船名が「ペンギン饅頭号」で番号が 1234567 の場合、Flagは Diver25{ペンギン饅頭号_1234567} となる)

Free Hint:
船名には記号を含まない。 / The ship name doesn't contain symbols.

添付ファイル

画像を加工すると、文字がはっきり見えるようになる。

「東京海洋大学 7JVV」と検索すると、以下の記事たちがヒットする。

https://ja.wikipedia.org/wiki/神鷹丸_(4代)
より、船名が「神鷹丸」で、IMO番号が「9767675」だとわかる。

Flag: Diver25{神鷹丸_9767675} (Solved on June 7th, 12:21:34 PM) [lumin]

geo

✅Afghanistan (Difficulty: medium, 414 points, 94 solves)

動画 / Video:
https://www.youtube.com/watch?v=NWQwx4-MeRg&t=65s

この動画の65~67秒に表示される写真はいつどこで撮影されたものか。
Flag形式: Diver25{撮影場所名_YYYY-MM-DD}(撮影場所名は英語)
例えば、2025年6月5日に、Camp Darbyで撮られた場合は、Diver25{Camp Darby_2025-06-05}となる。

YouTube動画の配信元はAFP。
AFP Forumで「Basketball」と検索し、調べていくと同じ画像が見つかる。

(Source: https://www.afpforum.com/AFPForum/Search/Results.aspx?pn=1&smd=8&mui=3&q=8026586975492990829_0&fst=Basketball&fto=3&t=2&cck=a1aff2#pn=34504&smd=8&mui=3&q=8026586975492990829_0&fst=Basketball&fto=3&t=2&cck=a72a9d)


(Source: https://u.afp.com/SGbQ)
撮影日時は「4/16/2009 07:25 UTC」であり、キャプションより撮影場所は「Camp Bostick」だとわかる。

Flag: Diver25{Camp Bostick_2009-04-16} (Solved on June 7th, 10:24:38 PM) [himitu.tokina]

✅advertisement (Difficulty: easy, 100 points, 233 solves)

記事 / Article:
https://web.archive.org/web/20250108154113/https://www.noticiasaominuto.com/mundo/2699746/kyiv-diz-que-russia-usou-como-recrutas-ate-180000-presidiarios

この記事の写真が撮影された場所はどこか。

画像をGoogle Lensにかけて「ここどこ」と訊くと、候補地を絞り出してくれる。

サンクトペテルブルクのTokyo Cityをストリートビューで調べると、該当の建物の場所を見つけることができる(広告は無い)。
https://www.google.com/maps/@59.9430439,30.2780747,3a,34.3y,213.31h,88.14t/data=!3m7!1e1!3m5!1sLcw_0tMJgj0T5EGDJxlGoA!2e0!6shttps:%2F%2Fstreetviewpixels-pa.googleapis.com%2Fv1%2Fthumbnail%3Fcb_client%3Dmaps_sv.tactile%26w%3D900%26h%3D600%26pitch%3D1.8599999999999994%26panoid%3DLcw_0tMJgj0T5EGDJxlGoA%26yaw%3D213.31!7i16384!8i8192?authuser=0&entry=ttu&g_ep=EgoyMDI1MDYxMS4wIKXMDSoASAFQAw%3D%3D

初回トライでは、以下のような位置でピンを刺したが、Incorrectだった。

次に、以下の位置でピンを刺したところ、Correctとなった。

Flag: 59.9429163108, 30.2786126733 (Solved on June 7th, 12:53:45 PM) [lumin]

✅elevator (Difficulty: hard, 499 points, 12 solves)

これらの写真はあるホテルの客室内と、その窓からの景色を撮影したものである(撮影日は2024年)。
このホテルに設置されたエレベーターには、2件の故障記録が存在しているものが1基ある。 故障日と、故障記録があるエレベーターの登録番号を答えよ。
Flag形式: Diver25{YYYYMMDD_YYYYMMDD_1234567}

例えば、登録番号 "1234567" のエレベーターが2000年11月20日と2020年2月13日に故障していた場合、Flagは Diver25{20001120_20200213_1234567} となる。

Free Hint 1:
故障が報告された日ではなく、故障が発生した日を解答してください。 / Answer the date the fault occurred, not the date the fault was reported.

Free Hint 2:
事故に関する画像や映像を閲覧する必要はありません。 / No need to see the image or video of accidents.

添付ファイル

東横INNの場所をまず特定することから始める。
添付画像の解体工事を見るに、日本ではなく海外っぽいと考えられる(日本でこのような解体工事をすると、SNSもしくはニュースなどで話題になっているはずだが、チームメンバー全員が知らなかったため)。
https://www.toyoko-inn.com/hotel_list/#region-8
東横INNの海外店舗をストリートビューで調べていくと、「東横INN釜山西面(ソミョン)」付近のストリートビューで、解体工事の右下に写っている街灯と同じ形および建物を見つけることができる。
https://maps.app.goo.gl/EgirYWq8NvJbESLN6
https://maps.app.goo.gl/3xx3ewLtyzSDSptQ9
https://maps.app.goo.gl/vhKH9djjs7NreKCf8

東横INN釜山西面について調べていると、YouTubeに東横INN釜山西面のエレベーター動画があることをyu1kさんが発見する。
https://www.youtube.com/watch?v=ezN_xPu7Q2Q

動画には、二台のエレベーターの管理番号が書かれていた。

  • 8053-118
  • 8019-148

韓国のエレベーター管理サイトhttps://www.elevator.go.kr/opn/MainPage.doで管理番号で検索すると、「8019-148」で2件の故障記録がある。
https://www.elevator.go.kr/opn/info/ComElvtrNumAddrNewL01.do?wccPrm=s4KKuwE0iGU1yIU4iiDy8tlMB1uC3c%2BtMhF%2FsXJPUM%2B1L5VbGZ68Bc03pD1pNHtl2Ofgbj4VlAg889apXS%2FYKKuE3%2BthPzrqXT7T3WtK26rDzHc7eHNyuriGjjBnPjsDD8ZeHvGrO80P8hNp9TkGK40dYhAlu0qI8je6WNAQlz7ysy5mHvMe0MeKWCrMMV0L6KRhwNZlt4D%2BcvhvKAmfaA%3D%3D#

Flag: Diver25{20230810_20241124_8019148} (Solved on June 7th, 11:16:04 PM) [yu1k]

✅hole (Difficulty: medium, 449 points, 72 solves)

この穴があった場所はどこか。
Where was this hole located?

添付ファイル

添付画像をGoogle Lensにかけると、画像のソース元がわかる。
https://www.smartprix.com/bytes/byds-yangwang-u9-can-jump-over-potholes-literally-but-how-passive-vs-active-suspension-explained/
https://youtu.be/zIKAn8yDkpA?si=DD53zMk28YDzASXc


動画の冒頭より、大雑把な位置がわかる。
https://maps.app.goo.gl/cAn7tfU2tiXYRvtXA

動画中で示される穴の位置は、以下。

Google Mapsの機能を使って、穴の位置を特定していく。

正解のフラグは、以下。

Flag: 39.4045850055, 114.1640532017 (Solved on June 7th, 2:14:47 PM) [himitu.tokina]

✅night_street (Difficulty: hard, 428 points, 86 solves)

画像の中心に写っている茶色の2階建ての建物に入る施設の正式名称を現地語表記で答えなさい。
Flag形式: Diver25{施設名}(例: Diver25{お台場海浜公園前郵便局})
注意: この問題を解く際、外部サイトへの機械的なアクセスやスクレイピングは禁止します。また、それらを行う必要はありません。 ただし、ブラウザから手動で取得できる情報や、公開されているAPIサービスやデータセットの利用は問題ありません。

添付ファイル

画像の「茶色の2階建ての建物」はクリニックであり、クリニックの横の建物はリンガーハットであることがわかる。

himitu.tokinaさんがリンガーハットの店舗一覧から人力で虱潰しに調べ、特定した。
https://shop.ringerhut.jp/detail/r0250/

https://maps.app.goo.gl/QYdHYqdxwpXzJvns5

Flag: Diver25{弥富通クリニック} (Solved on June 7th, 9:42:04 PM) [himitu.tokina]

✅what3slashes (Difficulty: medium, 446 points, 75 solves)

この画像が撮影されたとき、正面に家が3軒、右手に家が1軒あった。
それから少し経った、ある月の初旬にこの場所にもう一度訪れてみた。そのときには、正面左側に家が1軒増えていて、正面右側にもう1軒が建設中であった。その時点で、建設中の家に屋根はなかったが、黒っぽい屋根を作る予定だという。
「ある月の初旬」とは何年の何月のことだろうか。
Flag形式 : Diver25{YYYY/MM} (e.g. Diver25{2025/06})

添付ファイル

画像の文字を読み取ると、「бумба.цогц.бататгав」となる。
座標で表すと、「47.93106143394261, 106.8001779827436」付近。
また、添付画像の出典は、https://what3words.com/ja/news/general/mongol-post
2016年05月の記事である。
Googme Earth Proで確認すると、以下のような画像になっている。

2016-05-30日の時点では、「正面に家が3軒、右手に家が1軒」という状態になっており、問題文の初期状態と一致する。
Googme Earth Proの時期を徐々にずらしていくと、2018-10-30のときに、「正面左側に家が1軒増えていて、正面右側にもう1軒が建設中であった。その時点で、建設中の家に屋根はなかった」の状態になっている。

一月遅らせて、2018-11-30のになると、「正面右側にもう1軒が建設中であった。その時点で、建設中の家に屋根はなかったが、黒っぽい屋根を作る」の黒っぽい屋根の状態になっていることがわかる。

したがって、ある月の初旬とは、2018-10である。

Flag: Diver25{2018/10} (Solved on June 8th, 12:16:28 AM) [awamori]

✅convenience (Difficulty: easy, 462 points, 63 solves)

青森県内に、公園とコンビニ、スーパーマーケットが互いに約100m圏内に存在する場所がいくつかある。また、これはOpenStreetMapで確認可能である。
この条件を満たす 公園 のうち、最南端 のものについて、OpenStreetMap上での Way Number を答えよ。
なお、「公園」の定義は、OpenStreetMap上で "park" (leisure=park) と分類されているものに準拠する。
Flag形式: Diver25{123456789}

Free Hint:
「互いに約100m圏内に存在する」の例は添付画像を参考にすること。 / Regarding the example of "exist within approximately 100 metres of each other", refer the attached image.

添付ファイル

himitu.tokinaさん、私、ykameさんでトライ。

ChatGPTに、overpass turboを使って、上の条件に当てはまる箇所を出力させるクエリを実装させた。
生成したものにバグがあったり、何故かコンビニをamenity=convenience(実際は、"shop"="convenience")と書いてしまったりするので、それを修正した最終的なクエリが以下。

overpass turboのクエリ
/*
  青森県内の公園 (leisure=park, Way) で
      ├ コンビニ (shop=convenience) が半径100 m 内に ≥1
      └ スーパー (shop=supermarket, node または way) が半径100 m 内に ≥1
  ────────────────────────────────────────────────
  条件を満たす公園 (.cand) と、
  それぞれの公園の半径100 m 内にあるコンビニ (.cand_conv) / スーパー (.cand_sup)
  を一緒に出力する。
*/

[out:json][timeout:900];

// 0) 青森県エリア
area["name"="青森県"]["boundary"="administrative"]["admin_level"="4"]->.pref;

// 1) 県内コンビニ & スーパー
(
  node(area.pref)["amenity"="convenience"];
  way (area.pref)["amenity"="convenience"];
)->.conv;

(
  node(area.pref)["shop"="supermarket"];
  way (area.pref)["shop"="supermarket"];
)->.sup;

// 2) 県内公園
way(area.pref)["leisure"="park"]->.parks;

// 3) 公園↔コンビニ≦100 m
way["leisure"="park"](around.conv:100)->.pc;

// 4) 公園↔スーパー≦100 m
way["leisure"="park"](around.sup:100)->.ps;

// 5) 両条件を満たす公園 = 交差
(.pc.ps;)->.cand;

// 6) .cand の周囲100 mにあるコンビニ / スーパーを取得
(
  node(around.cand:100)["shop"="convenience"];
  way (around.cand:100)["shop"="convenience"];
)->.cand_conv;

(
  node(around.cand:100)["shop"="supermarket"];
  way (around.cand:100)["shop"="supermarket"];
)->.cand_sup;

// 7) 公園 + コンビニ + スーパー をまとめて出力
(
  .cand;
  .cand_conv;
  .cand_sup;
);
out center;

上の実行結果jsonに対して、以下のjqを実行することで、緯度の値をソートしていく。

jqによるソート
jq -r '
  .features[]
  | select(.properties."@id"|test("^way/"))
  | select(.properties.leisure == "park")
  | [
      (.properties."@id"|ltrimstr("way/")),   # Way 番号だけにする
      .geometry.coordinates[1]               # 緯度(lat)
    ]
  | @tsv
' export.geojson | sort -k2,2n

実行結果が以下。

jqの実行結果
473781167       40.4876517
554174108       40.4970652
469011747       40.5019484
548111563       40.5048403
548111566       40.5057663
556701681       40.5088889
554500556       40.5096331
556701675       40.5105559
653522920       40.522273
469015024       40.5305473
610209128       40.5746562
558735754       40.5753918
457168544       40.5755712
457168545       40.5759238
889137310       40.5836178
759381890       40.5844328
1046219602      40.5857964
610229311       40.592889
462699164       40.5999322
85932862        40.607849
598284960       40.6121541
1134311715      40.6159722
556468692       40.6211213
1352122466      40.6580007
1280174293      40.6762815
566336458       40.7324098
976989884       40.7758987
654467292       40.7813808
622921369       40.7817976
654257498       40.7897562
1293429513      40.7960708
1293429508      40.7963246
654467254       40.7986368
833807672       40.801068
755636793       40.8065946
875650672       40.8103587
835453786       40.8119616
888877503       40.8144533
1077475507      40.8166241
226276759       40.8192437
226401957       40.820188
556682678       40.8219718
295029645       40.827282
1301553269      40.8282825
1104915023      40.8300001
1104920372      40.8320252
1270629236      40.8338747
1104916814      40.8349066

ykameさんと一緒に、上から順にwayを見ていて、条件に一致しているかを確認。
条件に一致している最南端の公園は、以下の場所だった。

https://www.openstreetmap.org/way/759381890

Flag: Diver25{759381890} (Solved on June 7th, 9:44:12 PM) [zackey-heuristics]

✅Talentopolis (Difficulty: medium, 472 points, 53 solves)

記事 / Article:
https://www.guineaecuatorialpress.com/noticias/primera_edicion_de_talentopoli

"Primera edición de Talentopolis" という記事内に登場するステージの位置を答えよ。

https://ahoraeg.com/cultura/2024/09/10/inicia-el-proyecto-talentopolis-en-el-barrio-san-juan-de-esta-ciudad-capital/
などから、「GuineaのSan Juanで開催されたTalentopolis」であることがわかる。
上記のWebページから位置を特定していく。

https://ameblo.jp/sekakono4645/entry-12485139906.htmlhttps://www.youtube.com/results?search_query=Viviendas+sociales+de+san+Juan+Malaboで見つかる動画を使って、さらに候補を絞っていく。
https://maps.app.goo.gl/vXrMjLwpQEb2GhtB9

ここの場所が答えだと考えられる。

Flag: 3.7375685806, 8.7965819491 (Solved on June 7th, 5:57:39 PM) [awamori]

recon

✅00_engineer (Difficulty: easy, 100 points, 346 solves)

東京駅の近くでソフトウェアエンジニアの名札を拾った。おそらく落とし物だろう。
このエンジニアが勤務している会社のWebサイト(トップページ)のURLを答えよ。
Flag 形式: Diver25{https://google.com}

recon カテゴリの問題を解答するには、この問題の情報が必要となる。ただし、この問題を除き、どの順序で解答しても構わない。

Free Hint:
この名札が東京駅近くで見つかったことから、日本の会社だろう。

添付ファイル

画像には、kodai_snと書かれている。
kodai_snをX(Twitter)で調べると、以下のアカウントが発見できる。
https://x.com/kodai_sn

プロフィール欄には、「https://kodai-sn.github.io/」へのリンクが貼られており、そのページに飛ぶと、現在の勤務先が書かれている。

「Magneight Software」で検索すると、会社のWebページがヒットする。

https://magneight.com/

以上より、Diver25{https://magneight.com}が答えとなる(ykameさんが提出)。

Flag: Diver25{https://magneight.com} (Solved on June 7th, 12:10:14 PM) [ykame]

✅01_asset (Difficulty: easy, 473 points, 53 solves)

"00_engineer" の問題で見つかった会社のCEOが持っていたスマートフォンの資産番号を答えよ。
Flag 形式: Diver25{ABCD-12345}

03_ceoより、CEOであるMizuki Sekozakiは「mizuki1206edelweiss」というハンドルネームを使用する可能性が高いと考えられる。
himitu.tokinaがInstagramでアカウント発見。
https://www.instagram.com/mizuki1206edelweiss/

https://www.instagram.com/p/DHAMO0zPYjt/?utm_source=ig_web_copy_link&img_index=2
の投稿にて、スマートフォンの資産番号が写っている。

Flag: Diver25{MN24-P113} (Solved on June 7th, 6:41:59 PM) [himitu.tokina]

✅02_recruit (Difficulty: medium, 488 points, 37 solves)

"00_engineer" の問題で見つかった会社で、採用を担当していると思われる人物の氏名を答えよ。
Flag 形式: Diver25{Shigeru Ishiba} (ローマ字表記)

00_engineerで発見した会社のWebページのアーカイブを探索していくと、Wayback Machineにはアーカイブは存在しないが、archive.todayにアーカイブが存在することを確認した。
https://archive.md/sD2R0

また、archive.todayにアーカイブされている方にはGoogleドキュメントへのリンクが残っていた。
https://docs.google.com/document/d/1aKBTbwtt01StVTf76JRCZyL0mp4hn5FZkFwPJ56xZRc/edit?tab=t.0#heading=h.szwee2dp3tji

GoogleドキュメントからGMailアドレスを導くには、Malfrats/xeuledocを使用すればよい。
結果は以下のようになる。

{
    "document_id": "1aKBTbwtt01StVTf76JRCZyL0mp4hn5FZkFwPJ56xZRc",
    "document_link": "https://docs.google.com/document/d/1aKBTbwtt01StVTf76JRCZyL0mp4hn5FZkFwPJ56xZRc/edit?tab=t.0#heading=h.szwee2dp3tji",
    "created_date": "2025-03-01T15:04:36.928000",
    "modified_date": "2025-03-01T15:06:15.079000",
    "user_permissions": [
        "reader"
    ],
    "public_permissions": [
        "reader"
    ],
    "owner": {
        "id": "14204889817436516997",
        "name": "makoto.u.sunflower",
        "emailAddress": "makoto.u.sunflower@gmail.com",
        "domain": "gmail.com",
        "role": "owner",
        "type": "user",
        "photoLink": "https://lh3.googleusercontent.com/a-/ALV-UjUibBMYPL25YKhqaKt7d_wDvHHIpTAhOkNIQ2AESWJtnNlc2A=s64"
    }
}

以上より、makoto.u.sunflower@gmail.comという人が作成したGoogleドキュメントだと特定できる。
GMailアドレスからGoogleに関連するサービスでの活動を確認したい場合は、Epieosを使う。
結果は以下のようになる。

{
  "metadata": {
    "query": "makoto.u.sunflower@gmail.com",
    "timestamp": "2025-06-07T04:16:51.533Z"
  },
  "data": {
    "osinter": {
      "google": {
        "photo": "https://lh3.googleusercontent.com/a-/ALV-UjUibBMYPL25YKhqaKt7d_wDvHHIpTAhOkNIQ2AESWJtnNlc2A",
        "id": "100984246270086465803",
        "last_update": "2025-05-18 17:23:21 (UTC)",
        "services": {
          "google_maps": "https://www.google.com/maps/contrib/100984246270086465803",
          "google_calendar": "https://calendar.google.com/calendar/u/0/embed?src=makoto.u.sunflower@gmail.com",
          "google_plus_archive": "https://web.archive.org/web/*/plus.google.com/100984246270086465803*"
        }
      }
    }
  }
}

Google MapsのURLにアクセスすると、名前が書いてある。

これが答え。

Flag: Diver25{Makoto Uchigashima} (Solved on June 7th, 1:19:02 PM) [zackey-heuristics]

✅03_ceo (Difficulty: medium, 302 points, 142 solves)

"00_engineer" の問題で見つかった会社の、CEOのメールアドレス(Gmail)を答えよ。
Answer the email address (Gmail) of the CEO of the company found in "00_engineer" challenge?
Flag 形式 / Flag Format: Diver25{example@gmail.com}

00_engineerで発見したkodai_snは、github.ioで個人サイトを開いていることから、GitHubのアカウントを持っているはずである。
kodai-snで調べると、GitHubのプロフィールページが見つかる。
https://github.com/kodai-sn

kodai-snのリポジトリを追っていくと、forkされた履歴のあるリポジトリが存在し、フォーク先を見ると、「mizuki1206edelweiss」が見つかる。

アカウント名に「mizuki」が入っていることから、https://magneight.com/about.htmlに書かれているCEOの「Mizuki Sekozaki」だろうと考えられる。

luminさんがリポジトリを調査したところ、彼の登録メールアドレスがmizuki1206anemone@gmail.comであるとわかった。
色んなやり方でメールアドレスの特定が可能だが、ここではmxrch/GitFiveを使用する方法について紹介する。

gitfiveのログ
$ gitfive user mizuki1206edelweiss


                   %%                   %%
                 (%%%%%,             (%%%%%,
                 %%%%%@@@@@@@@@@@@@@@@@%%%%%
                 %%%@@@@@@@@@(((@@@@@@@@@%%%
                 @@@@@@((@@@(((@@@((@@@@@@%
                 @@@@@@@((((@@@@@((((@@@@@@@
                @@@@((((@@&(@@@@@(@@@((((@@@@
               @@@@@(((((@@@@@@@@@@@((((%@@@@@
               @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
               @@@@@@@@@@@@@.....@@@@@@@@@@@@@
               @@@@@@@@@@@@@@@.@@@@@@@@@@@@@@@
                 @@@@@@@@@@@@,,,@@@@@@@@@@@@
           (((      @@@@@@@@@@@@@@@@@@@
              *((          @@@@@@@
                *((       @@@@@@@@@
                  (((((. @@@@@@@@@@@
                    (((((@@@@@@@@@@@&
                        @@@@@@@@@@@@@
                        @@@@@@@@@@@@@
                        .@@@@@@@@@@@#

                  By: mxrch (🐦 @mxrchreborn)
            Support my work on GitHub Sponsors ! 💖


            > GitFive 1.1.10 (Five Eyes Edition) <

🎉 You are up to date !

[DEBUG] Cookies valid !

✍️ PROFILE

[Identifiers]
Username : mizuki1206edelweiss
Name : Empty
ID : 200789916

[Avatar]
[-] Default profile pic !

[Status]
Site Admin : No
Hireable : No

[Social]
Nothing to show.

[Stats]
Public repos : 2
Followers : 1
Following : 0

[Account]
Account created : 2025/02/25 14:32:22 (UTC)
Last profile update : 2025/03/04 16:28:39 (UTC)

[External contributions]
Nothing to show.

[SSH public keys]
Nothing to show.

[Gists]
Nothing to show.

🏭 REPOSITORIES STATS

[+] 2 repositories scraped ! (1 source, 1 fork)

[+] Languages stats :
- None (100.0%)

🎎 CLOSE FRIENDS

Account is PEA : True
[+] 1 potential close friend found !

Close friend with 2 points :
- namanaggarwal76 (Follower is following PEA, Follower is PEA)

* PEA = Pretty Empty Account

🏯 ORGANIZATIONS

[-] No organizations found.

🎭 IDENTITIES UNMASKING

[XRAY] 🎭 Impersonating users got in dumped commits...
[METAMON] 🐙 Added commits in 0.14s !

[+] [Target's email] 🐱 mizuki1206anemone@gmail.com -> @mizuki1206edelweiss
[+] Deleted the remote repo

[XRAY] 🥷 Near names iteration n°1
[XRAY] 🥷 Using names {'mizuki1206anemone', 'mizuki1206edelweiss'}

[+] Target's username exact match => 🙍 mizuki1206anemone
Related email tied to this name :
  📮 mizuki1206anemone@gmail.com (🐱 Github Account -> @mizuki1206edelweiss)
  Name tied to this email :
    🙍 mizuki1206edelweiss (found in 1 repo)

[+] Target's username exact match => 🙍 mizuki1206edelweiss
Related email tied to this name :
  📮 mizuki1206anemone@gmail.com (🐱 Github Account -> @mizuki1206edelweiss)
    [Already shown]

[-] No possible name variation found.

[-] No previous usernames / names found.


[+] 36 potential emails generated !
[METAMON] 🐙 Added commits in 0.14s !

[+] [TARGET FOUND] 🐱 mizuki1206anemone@gmail.com -> @mizuki1206edelweiss

[+] Deleted the remote repo

Flag: Diver25{mizuki1206anemone@gmail.com} (Solved on June 7th, 2:30:05 PM) [zackey-heuristics]

✅04_internal (Difficulty: medium, 416 points, 93 solves)

"00_engineer" の問題で見つかった会社では、Webブラウザからアクセス可能な社内用のDevOpsプラットフォームが運用されている。
そのシステムのバージョン名を、表記されている通りに答えよ。
Flag 形式: Diver25{135.0.1-f2+nightly}

https://magneight.com/のIPアドレスは、202.212.71.93https://www.cman.jp/network/support/go_ip.cgiなどで確認できる)。

202.212.71.93についてshodanすると、ポート3000でGiteaが開かれていることがわかる。
https://www.shodan.io/host/202.212.71.93

http://202.212.71.93:3000/にアクセスすると、実際にGiteaがホスティングされており、ページ下部にバージョンが書かれている。

Flag: Diver25{1.24.0+dev-303-gd88b012525} (Solved on June 7th, 5:45:08 PM) [zackey-heuristics]

✅05_designer (Difficulty: hard, 500 points, 7 solves)

"00_engineer" の問題で見つかった会社のWebサイトを手がけたデザイナーの連絡先(メールアドレス)を答えよ。
Flag 形式: Diver25{foo.bar@example.com}

04_internalで説明したIPアドレス202.212.71.93には、magneight.com以外にもう一つのドメインが登録されていることをluminさんが発見する。

https://bgp.he.net/ip/202.212.71.93#_dnsrecords

https://magn8soft.tokyoのアーカイブを確認すると、Wayback Machineに存在する。
https://web.archive.org/web/20250309135450/https://magn8soft.tokyo/
このページ中の動画(magneight-teaser.mp4)をダウンロードし、exiftoolでメタデータを確認する。

exiftoolによる動画(magneight-teaser.mp4)のメタデータ全文
$ exiftool magneight-teaser.mp4
ExifTool Version Number         : 12.76
File Name                       : magneight-teaser.mp4
Directory                       : .
File Size                       : 4.1 MB
File Modification Date/Time     : 2025:06:07 18:08:07+09:00
File Access Date/Time           : 2025:06:07 18:08:17+09:00
File Inode Change Date/Time     : 2025:06:07 18:08:07+09:00
File Permissions                : -rwxrwxrwx
File Type                       : MP4
File Type Extension             : mp4
MIME Type                       : video/mp4
Major Brand                     : MP4 v2 [ISO 14496-14]
Minor Version                   : 0.0.0
Compatible Brands               : mp42, mp41
Movie Header Version            : 0
Time Scale                      : 90000
Duration                        : 11.00 s
Preferred Rate                  : 1
Preferred Volume                : 100.00%
Preview Time                    : 0 s
Preview Duration                : 0 s
Poster Time                     : 0 s
Selection Time                  : 0 s
Selection Duration              : 0 s
Current Time                    : 0 s
Next Track ID                   : 2
Track Header Version            : 0
Track Create Date               : 2025:03:09 11:53:01
Track Modify Date               : 2025:03:09 11:53:01
Track ID                        : 1
Track Duration                  : 11.00 s
Track Layer                     : 0
Track Volume                    : 0.00%
Matrix Structure                : 1 0 0 0 1 0 0 0 1
Image Width                     : 1920
Image Height                    : 1080
Media Header Version            : 0
Media Create Date               : 2025:03:09 11:53:01
Media Modify Date               : 2025:03:09 11:53:01
Media Time Scale                : 30000
Media Duration                  : 11.00 s
Media Language Code             : eng
Graphics Mode                   : srcCopy
Op Color                        : 0 0 0
Handler Type                    : Alias Data
Handler Description             : Alias Data Handler
Compressor ID                   : avc1
Source Image Width              : 1920
Source Image Height             : 1080
X Resolution                    : 72
Y Resolution                    : 72
Compressor Name                 : AVC Coding
Bit Depth                       : 24
Start Timecode                  : 00:00:00:00
XMP Toolkit                     : Adobe XMP Core 9.0-c001 152.deb9585, 2024/02/06-08:36:10
Create Date                     : 2025:03:09 20:53:01+09:00
Modify Date                     : 2025:03:09 20:53:01+09:00
Metadata Date                   : 2025:03:09 20:53:01+09:00
Creator Tool                    : Adobe Premiere Pro 2025.0 (Macintosh)
Video Frame Rate                : 30.000000
Video Field Order               : Progressive
Video Pixel Aspect Ratio        : 1
Start Time Scale                : 30
Start Time Sample Size          : 1
Orientation                     : Horizontal (normal)
Instance ID                     : xmp.iid:485cefa0-9285-4484-9122-97421679b6dd
Document ID                     : 3ffbb4d5-4cfc-30a2-c2a1-010900000057
Original Document ID            : xmp.did:cc3b79cb-212c-4ae2-9adb-e7c899a7fe4e
Format                          : H.264
Duration Value                  : 990000
Duration Scale                  : 1.11111111111111e-05
Video Frame Size W              : 1920
Video Frame Size H              : 1080
Video Frame Size Unit           : pixel
Start Timecode Time Format      : 30 fps
Start Timecode Time Value       : 00:00:00:00
Project Ref Type                : Movie
Tracks Track Name               : Markers
Tracks Frame Rate               : f30
Tracks Markers Start Time       : 90
Tracks Markers Comment          : We should say not only "購買" but also "調達"
Tracks Markers Name             : JP text
Tracks Markers Type             : Comment
Tracks Markers Guid             : dc6d9670-e9ec-427d-a3f6-f1337fb08f5b
Tracks Markers Cue Point Params Key: marker_guid
Tracks Markers Cue Point Params Value: dc6d9670-e9ec-427d-a3f6-f1337fb08f5b
Alt Timecode Time Value         : 00:00:00:00
Alt Timecode Time Format        : 30 fps
History Action                  : saved, created, saved, saved, saved
History Instance ID             : 305fe33d-16ed-10bc-bf78-557c00000084, xmp.iid:bc3822a1-41be-4dea-871e-863d404f63c7, xmp.iid:b23b33e1-fdee-41cf-beae-f078af1ce5c9, xmp.iid:4b45ef11-c3b7-43a7-9c8f-25df28f32102, xmp.iid:485cefa0-9285-4484-9122-97421679b6dd
History When                    : 2025:03:09 20:53:01+09:00, 2025:03:09 20:52:52+09:00, 2025:03:09 20:53:01+09:00, 2025:03:09 20:53:01+09:00, 2025:03:09 20:53:01+09:00
History Software Agent          : Adobe Premiere Pro 2025.0 (Macintosh), Adobe Premiere Pro 2025.0 (Macintosh), Adobe Premiere Pro 2025.0 (Macintosh), Adobe Premiere Pro 2025.0 (Macintosh), Adobe Premiere Pro 2025.0 (Macintosh)
History Changed                 : /, /, /metadata, /metadata
Ingredients Instance ID         : 8ca5e031-85a3-d8ec-74b2-e6a000000072, ff27eb2f-dea2-ec27-5944-0dcc00000078, xmp.iid:88f4280a-1d57-4439-a31c-6d8e52376926
Ingredients Document ID         : a2a75a24-1271-de31-3015-bb1600000045, 133a3fd1-1eb4-8c3a-f1a1-38c80000004b, xmp.did:4e76af84-d348-4ff4-93e5-5601366f3be1
Ingredients From Part           : time:0, time:0d2798409600000f254016000000, time:0d1464825600000f254016000000
Ingredients To Part             : time:2243808000000f254016000000d554601600000f254016000000, time:0d2798409600000f254016000000, time:0d1464825600000f254016000000
Ingredients File Path           : logo-white.ai, 243075_small.mp4, compos1.mov
Ingredients Mask Markers        : None, None, None
Pantry Modify Date              : 2025:03:09 10:51:26Z
Pantry Creator Tool             : Adobe After Effects 2025 (Macintosh)
Pantry Metadata Date            : 2025:03:09 19:51:26+09:00
Pantry Create Date              : 2025:03:09 10:51:22Z
Pantry Start Time Scale         : 2997
Pantry Start Time Sample Size   : 100
Pantry Video Frame Rate         : 29.970030
Pantry Video Field Order        : Progressive
Pantry Video Pixel Aspect Ratio : 1
Pantry Instance ID              : xmp.iid:88f4280a-1d57-4439-a31c-6d8e52376926
Pantry Document ID              : xmp.did:4e76af84-d348-4ff4-93e5-5601366f3be1
Pantry Original Document ID     : xmp.did:4e76af84-d348-4ff4-93e5-5601366f3be1
Pantry Format                   : QuickTime
Pantry Orientation              : Horizontal (normal)
Pantry Alt Timecode Time Value  : 00;00;00;00
Pantry Alt Timecode Time Format : 29.97 fps (drop)
Pantry Video Frame Size W       : 1920
Pantry Video Frame Size H       : 1080
Pantry Video Frame Size Unit    : pixel
Pantry Start Timecode Time Format: 29.97 fps (drop)
Pantry Start Timecode Time Value: 00;00;00;00
Pantry Duration Value           : 364364
Pantry Duration Scale           : 3.33333333333333e-05
Pantry History Action           : saved
Pantry History Instance ID      : xmp.iid:88f4280a-1d57-4439-a31c-6d8e52376926
Pantry History When             : 2025:03:09 19:51:26+09:00
Pantry History Software Agent   : Adobe After Effects 2025 (Macintosh)
Pantry History Changed          : /
Pantry Windows Atom Extension   : .aep
Pantry Windows Atom Invocation Flags: -ep
Pantry Mac Atom Application Code: 1180193859
Pantry Mac Atom Invocation Apple Event: 1131559026
Pantry Ae Project Link Composition ID: 1
Pantry Ae Project Link Render Queue Item ID: 4
Pantry Ae Project Link Render Output Module Index: 0
Pantry Ae Project Link Full Path: /Users/callalily0629izuhara/Documents/footage/magneight.aep
Derived From Instance ID        : xmp.iid:bc3822a1-41be-4dea-871e-863d404f63c7
Derived From Document ID        : xmp.did:bc3822a1-41be-4dea-871e-863d404f63c7
Derived From Original Document ID: xmp.did:bc3822a1-41be-4dea-871e-863d404f63c7
Windows Atom Extension          : .prproj
Windows Atom Invocation Flags   : /L
Mac Atom Application Code       : 1347449455
Mac Atom Invocation Apple Event : 1129468018
Mac Atom Posix Project Path     : /Users/callalily0629izuhara/Documents/Adobe/Premiere Pro/23.0/Magneight_2025.prproj
Media Data Size                 : 4113958
Media Data Offset               : 15459
Image Size                      : 1920x1080
Megapixels                      : 2.1
Avg Bitrate                     : 2.99 Mbps
Rotation                        : 0

着目すべきは、以下。

Mac Atom Posix Project Path     : /Users/callalily0629izuhara/Documents/Adobe/Premiere Pro/23.0/Magneight_2025.prproj

callalily0629izuharaがデザイナーのハンドルネームか何かだろうと考えられる。

callalily0629izuharaでBlueskyで検索すると、一つのアカウントが見つかる。

プロフィールに書いてあるlit.link二飛ぶと、メールの送信先が分かるようになっており、そのメールの送信先が答え。

Flag: Diver25{izuhara.calla.lily@outlook.com} (Solved on June 7th, 6:20:03 PM) [zackey-heuristics]

✅06_leaked (Difficulty: hard, 499 points, 12 solves)

"00_engineer" の問題で見つかったソフトウェアエンジニアのパスワードが漏洩して公開されてしまったらしい。彼はパスワードを変更して事なきを得たようだが、漏洩したパスワードは何だっただろうか。
Flag 形式: Diver25{his_password}

03_ceoで見つけたkodai-sn(GitHub)についても、gitfiveなどを行うと、メールアドレスを特定できる。

gitfiveのログ
$ gitfive user kodai-sn


                   %%                   %%
                 (%%%%%,             (%%%%%,
                 %%%%%@@@@@@@@@@@@@@@@@%%%%%
                 %%%@@@@@@@@@(((@@@@@@@@@%%%
                 @@@@@@((@@@(((@@@((@@@@@@%
                 @@@@@@@((((@@@@@((((@@@@@@@
                @@@@((((@@&(@@@@@(@@@((((@@@@
               @@@@@(((((@@@@@@@@@@@((((%@@@@@
               @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
               @@@@@@@@@@@@@.....@@@@@@@@@@@@@
               @@@@@@@@@@@@@@@.@@@@@@@@@@@@@@@
                 @@@@@@@@@@@@,,,@@@@@@@@@@@@
           (((      @@@@@@@@@@@@@@@@@@@
              *((          @@@@@@@
                *((       @@@@@@@@@
                  (((((. @@@@@@@@@@@
                    (((((@@@@@@@@@@@&
                        @@@@@@@@@@@@@
                        @@@@@@@@@@@@@
                        .@@@@@@@@@@@#

                  By: mxrch (🐦 @mxrchreborn)
            Support my work on GitHub Sponsors ! 💖


            > GitFive 1.1.10 (Five Eyes Edition) <

🎉 You are up to date !

[DEBUG] Cookies valid !

✍️ PROFILE

[Identifiers]
Username : kodai-sn
Name : Kodai.S
ID : 197311316

[Avatar]
[+] Custom profile pic !
=> https://avatars.githubusercontent.com/u/197311316

[Status]
Site Admin : No
Hireable : No

[Social]
Twitter : @kodai_sn

[Details]
Location : Tokyo

[Stats]
Public repos : 3
Followers : 0
Following : 0

[Account]
Account created : 2025/01/31 18:58:00 (UTC)
Last profile update : 2025/04/21 17:42:46 (UTC)

[External contributions]
Nothing to show.

[SSH public keys]
Nothing to show.

[Gists]
Nothing to show.

🏭 REPOSITORIES STATS

[+] 3 repositories scraped ! (3 sources, 0 fork)

[+] Languages stats :
- None (66.67%)
- HTML (33.33%)

🎎 CLOSE FRIENDS

Account is PEA : True
[-] No potential close friends were found.

* PEA = Pretty Empty Account

🏯 ORGANIZATIONS

[-] No organizations found.

🎭 IDENTITIES UNMASKING

[XRAY] 🎭 Impersonating users got in dumped commits...
[METAMON] 🐙 Added commits in 0.14s !

[+] [Target's email] 🐱 kodaisn.development@gmail.com -> @kodai-sn
[+] [Target's email] 🐱 shinonomekodai@gmail.com -> @kodai-sn
[+] Deleted the remote repo

[XRAY] 🥷 Near names iteration n°1
[XRAY] 🥷 Using names {'shinonomekodai', 'kodaisn.development', 'kodai-sn', 'kodai_sn', 'kodai.s'}

[+] Target's username exact match => 🙍 kodaisn.development
Related email tied to this name :
  📮 kodaisn.development@gmail.com (🐱 Github Account -> @kodai-sn)
  Name tied to this email :
    🙍 Kodai.S (found in 3 repos)

[+] Target's username exact match => 🙍 Kodai.S
Related emails tied to this name :
  📮 kodaisn.development@gmail.com (🐱 Github Account -> @kodai-sn)
    [Already shown]

  📮 shinonomekodai@gmail.com (🐱 Github Account -> @kodai-sn)
  Name tied to this email :
    🙍 Kodai.S (found in 1 repo)

[+] Target's username exact match => 🙍 shinonomekodai
Related email tied to this name :
  📮 shinonomekodai@gmail.com (🐱 Github Account -> @kodai-sn)
    [Already shown]

[-] No possible name variation found.

[-] No previous usernames / names found.


[+] 63 potential emails generated !
[METAMON] 🐙 Added commits in 0.14s !

[+] [TARGET FOUND] 🐱 kodaisn.development@gmail.com -> @kodai-sn [Kodai.S]
[+] [TARGET FOUND] 🐱 shinonomekodai@gmail.com -> @kodai-sn [Kodai.S]

[+] Deleted the remote repo

kodai-snは、以下の二つのメールアドレスを使用している。

  • kodaisn.development@gmail.com
  • shinonomekodai@gmail.com

ここで、luminさんが「パスワード流出といえば、https://pastebin.comだろう」と決め打って、メールアドレスで検索すると、見つかる。

Flag: Diver25{1_4m_fr0m_h0kk41d0_4nd_l0v3_54un4} (Solved on June 7th, 6:23:11 PM) [lumin]

transportation

✅36_years_ago (Difficulty: easy, 347 points, 125 solves)

このニュース動画に映っている航空機に、1989年8月時点で割り当てられていたトランスポンダのMode Sコードを16進数表記で答えてください。
https://www.youtube.com/watch?v=OvR2O_Vpwc0
Flag形式: Diver25{1234AB}
content warning: この映像は軽微な航空事故の様子を含みます。

動画を見ると、「JA4098」とかかれていることがわかる。
https://www.avdelphi.com/airframe.html?id=7858526&recache=1749921041を確認すると、1989年に割り当てられていたMode Sコードは「AD9D6A」だとわかる。

Flag: Diver25{AD9D6A} (Solved on June 7th, 1:44:18 PM) [lumin]

❌air2air (Difficulty: medium, 495 points, 24 solves)

動画 / Video:
https://www.youtube.com/watch?v=wUa5TGj6uxc
(無音です / No audio)

この動画は2025年3月11日(現地時間)に撮影された。遠くに映っている航空機のコールサインと機体記号を答えよ。
(撮影者が搭乗している航空機ではない)
Flag形式: Diver25{コールサイン_機体記号}(例: Diver25{ANA0183_JA381A})

Free Hint:
有料の情報源を使う必要はない。

解けなかった問題。

00:16付近の

このデザインより、スターラックス航空だとわかる。

スターラックス航空で、「日本のどこか(沖縄ではない)」から「台北」へ向かう便に絞り込める。
また、画像が全体的に明るいため、日本時間で夜のフライトではないことがわかる。

また、「40A」という座席番号より、A330neoかA350-900だと考えられる。
https://www.starlux-airlines.com/ja-JP/experience/walk-into-starlux/our-fleet/a350-900

最後に、ここがドツボに嵌まってしまった点だが、動画に写ってる飛行体の形から、軍事系のものだと絞り込みをかけてしまった。
この条件で、Flightrader24 Businessプランを絞り込みをかけていったら、解けずに終わってしまった。

Incorrect Flag: Diver25{LA951_169307}

Incorrect Flag: Diver25{DRAGN12_168324}

Incorrect Flag: Diver25{N664GA_N664GA}

正しい答えは、https://tr.flightaware.com/live/flight/SKY8026/history/20250311/0701Z/RJTT/RCTP

スターラックス航空はSJX803だった。

❌listen (Difficulty: medium, 473 points, 53 solves)

音声 / Audio:
https://drive.google.com/file/d/1s_HC_S_9szbkupw9jQo4Zsvkoj73Qd_6/view?usp=sharing

この航空管制のやり取りが録音された空港のICAOコード(4レターコード)を答えよ。
Flag形式: Diver25{RJTT}

Free Hint:
音声の冒頭は無音です

これも解けなかった問題。

競技時間には記載されていなかったが、本問題で使用している音声の出典元は「LiveATC CYEG-Del-Gnd-Misc-Jan-18-2025-0500Z」である(この情報が分かると、どの空港か一発でわかってしまうので、伏せられていた)。

解けなかった理由としては、音声の書き起こしにotter.aiを使用してしまったことだと思う。
周波数情報(133.65 MHz)は聴き取れていたようだが、Canadaという情報を聴き取ることができていなかった。

https://www.liveatc.net/search/f.php?freq=133.65より、133.65 MHzを使用している空港から、音声を聞いた限りでは流暢な英語に聞こえるのでアメリカの空港に絞った(しかし、このサイトには答えのところがかかれていなかった)。

Incorrect Flag: Diver25{KABQ}

Incorrect Flag: Diver25{KMHV}

Incorrect Flag: Diver25{KHVN}

解けていた人に訊くと、https://github.com/openai/whisperを使うとちゃんと書き起こしできていたようだ。

https://cbfsim.co.uk/cbfsim/g-cbfs/CBFSOL_AIRPORT_DETAIL.php?A=CYEG

✅next_train (Difficulty: easy, 100 points, 245 solves)

この音声が録音された駅はどこか。駅名を答えよ(日本語でも英語でも可)。
(駅名は鉄道会社の公式サイトやWikipediaに記載されている表記とする)
Flag形式: Diver25{京都駅}

添付ファイル

(音声ファイルのため、Google Driveへアップロードしています)
https://drive.google.com/file/d/1Y1k9mouvyu4msehzz3HJ8szOG_fBTNEe/view?usp=sharing

00:35付近から始まるアナウンスで、「JR東日本 15番線 14:18発 久里浜行」というワードがきこえる。
https://ekitan.com/timetable/railway/train?sf=2590&tx=550100-3868500-1289S&dw=0&dt=&departure=1308&SFF=164-0&d=1
より、15番線にとまるのは品川駅となる。

Flag: Diver25{品川駅} (Solved on June 7th, 1:02:38 PM) [himitu.tokina]

✅platform (Difficulty: easy, 136 points, 192 solves)

この写真が撮影された駅はどこか。駅名を答えよ(日本語でも英語でも可)。
(駅名は鉄道会社の公式サイトやWikipediaに記載されている表記とする)
Flag形式: Diver25{京都駅}

添付ファイル

luminさんが一発で見つけた。

Flag: Diver25{牛浜駅} (Solved on June 7th, 2:45:09 PM) [lumin]

✅sanction (Difficulty: easy, 375 points, 112 solves)

2024年10月25日、制裁下にあるロシア船籍のRORO船「ANGARA」がある港湾に停泊していることが衛星画像で確認された。
停泊位置を答えよ。

https://jp.reuters.com/world/security/NQS7XBR6BFP4PDXB2DOWTUGQRE-2024-04-25/
より、2024-04-25時点の場所が特定されている。
滞在していたのは、以下の場所である。
https://maps.app.goo.gl/7HbvSvUkDoQBjK7VA


この場所をSubmitしたが、Incorrect。
2024-10-25に確実にあったソースがどこかにあるのかもと探し始める。

yu1kさんがXで以下の写真を発見する(「Russia ANGARA Ship」というワードで検索すると見つかる)。

Source: https://x.com/SiljaLynx/status/1847395580990881950

2024-10-19地点にいたことがわかるので、この地点でSubmitするが、Incorrect。

himitu.tokinaさんが、以下の情報を発見する。

Source: https://www.mofa.go.jp/files/100853978.pdf
2024-10-25時点の情報であるため、この位置であると考えられる。

Flag: 42.2271515903, 130.2826783061 (Solved on June 7th, 8:48:41 PM) [himitu.tokina]

history

✅bridge (Difficulty: medium, 263 points, 155 solves)

動画 / Video:
https://www.youtube.com/watch?v=fRMi8TXQRuo
(無音です / No audio)

この動画で列車が通過した橋梁は、ある災害で損傷した後に架け替えられたものである。架け替えに際して、他の橋梁の構造物が流用されたことがある文献に示されている。その流用元の橋梁名を答えよ(この橋の名前ではない)。
Flag形式: Diver25{橋梁名}(例: Diver25{日本橋川橋梁})

動画の情報から、ykameさんが熊本の豊肥本線および第二白川橋梁であることを特定。
第二白川橋梁の歴史を調べ、澱川橋梁を流用したことを特定。

Flag: Diver25{澱川橋梁} (Solved on June 7th, 1:15:35 PM) [ykame]

✅internment (Difficulty: hard, 478 points, 48 solves)

著名な木曜島の真珠採りダイバーであった藤井富太郎氏は、第二次世界大戦中、強制収容されました。彼が釈放された収容所と釈放の年月日を明らかにしてください。
Flag 形式: Diver25{YYYY-MM-DD_キャンプ番号_キャンプ地名_州名}

例えば、「2025年6月1日に、キャンプ番号7番のDiver州Daibaキャンプ」から釈放されたならば、 Diver25{2025-06-01_7_Daiba_Diver} となります。なお、キャンプ番号がない場合はX(大文字のX)を入れてください。例えば、Diver25{2025-06-01_X_Daiba_Diver} となります。

「藤井富太郎」と検索すると、以下の紀要がヒットする。
https://fujijoshi.repo.nii.ac.jp/records/412
PDFの中身を読み込むと、オーストラリアで収監されたことがわかる。

また、https://www.awm.gov.au/research/guide/pow-ww2-japaneseにおいて、

Personal service record, National Archives of Australia
The service record will typically include details of when an individual became a prisoner of war and may include details of the camps where they were held.

と書かれているのを発見する。

National Archives of Australiaのサービスである
https://recordsearch.naa.gov.au/SearchNRetrieve/Interface/SearchScreens/BasicSearch.aspx
にて、「tomitaro fujii」と検索すると、以下の内容がヒットする。

その中でも、以下の内容についてチェックする。


(Source: https://recordsearch.naa.gov.au/SearchNRetrieve/Gallery151/dist/JGalleryViewer.aspx?B=8610767&S=1&N=1&R=0#/SearchNRetrieve/NAAMedia/ShowImage.aspx?B=8610767&T=P&S=1)
上記の内容を読み取ると、1946-12-10に、キャンプ番号4番のVictoria州のTaturaキャンプから釈放されたと読み取れる。
したがって、Diver25{1946-12-10_4_Tatura_Victoria}となるが、これをsubmitしたところ、Incorrect。

ykameさんが「これがフラグじゃないのはおかしい」とチケットを使って、運営に訊くも

キャンプの情報が異なります。Taturaではありません。

と返ってきた。
それでも、「公式文書として保管してあるものにTaturaと書いてあるのに、間違っていると判定されるのはおかしい」という説得を行い、無事フラグとして認められた。

Flag: Diver25{1946-12-10_4_Tatura_Victoria} (Solved on June 7th, 3:31:21 PM) [ykame]

company

✅bid (Difficulty: medium, 491 points, 31 solves)

2023年、オマーンにおいて、ある施設に関連するニュースが報じられた。
https://www.youtube.com/watch?v=TFdubskF9Kw

その後、2024年10~11月に、この施設に関連すると推定される、井戸およびパイプラインを建設するための入札が実施された。
このとき、3位の金額で入札した企業のCEOの名前を、Webサイトに掲載されている英語表記で答えよ。
Flag形式: Diver25{Kelly Ortberg}

まず、YouTube動画がアラビア語で読めないため、NotebookLMを使って要約させた。

NotebookLM自体には追加で検索する機能等が存在しないため、この要約内容とともに問題文の内容について、ChatGPTに調査させるためのプロンプトを考えてもらった。
(その際のスクリーンショットがなかったので、プロンプトの文章だけ紹介します。

「オマーンの農業・漁業・水資源省(Ministry of Agricultural, Fisheries and Water Resources)アル・ハイラート農業サービス開発会社(Al Khairat Agricultural Services Development Company)アダム県アル・バシャール地区(Al Bashaer, Adam Governorate)の獣医病院プロジェクトについて、以下の情報を調査してください。

  1. 2024年10月から11月の期間に実施された、この獣医病院施設に関連する**「井戸(well)およびパイプライン(pipeline)の建設」に関する入札(tender / auction)**の情報を特定してください。
  2. この入札において、3番目に高い金額で入札した企業を特定し、その企業の最高経営責任者(CEO)の氏名を、関連する公式ウェブサイトやニュース記事に掲載されている英語表記で特定してください。
    検索の際は、オマーンの政府調達ウェブサイト、関連省庁の発表、および現地のニュースメディアのアーカイブを中心に調査し、可能な限り具体的な情報源を引用してください。」

ChatGPT o3に投げた結果、以下のような返答が返ってくる。

NotebookLMとChatGPTを信じると、問題内容の入札案件は、「Drilling Well Bore Supply& Installation of Pump and Pipeline for Al-Bashayer Veterinary Hospital in Wilayat Adam at Al-Dakhliah Governorat」となる。
https://www.omantender.com/tender/drilling-well-bore-supply-installation-pump-and-pipeline-al-bashayer-veterinary-hospital-wilayat-ad-68865d1.php

ここまではわかり、入札案件名などで調べていたが、3位の金額で入札した企業がわからなかったため、awamoriさんにバトンタッチ。

「Drilling Well Bore Supply& Installation of Pump and Pipeline for Al-Bashayer Veterinary Hospital in Wilayat Adam at Al-Dakhliah Governorat」で検索すると見つかる、https://etendering.tenderboard.gov.om/product/nitParameterView?mode=public&tenderNo=62644&PublicUrl=1&CTRL_STRDIRECTION=LTR&encparam=mode,tenderNo,PublicUrl,CTRL_STRDIRECTION,randomno&hashval=a34c6c2faa1d2a895fd3b37806bafc76958a9ed9396aad8afe5dd7ef034977f2にアクセス。
そこで、awardedと検索すると、以下のページが見つかる。
https://etendering.tenderboard.gov.om/product/AllVendorStatusReportPublic?tenderNo=62644&CTRL_ROLEID=99&CTRL_USERID=usr&CTRL_SID=abc&callfrom=public&SCWF_envList=PB&PublicUrl=1&CTRL_STRDIRECTION=LTR&encparam=tenderNo,CTRL_ROLEID,CTRL_USERID,CTRL_SID,callfrom,SCWF_envList,PublicUrl,CTRL_STRDIRECTION,randomno&hashval=3ddcf4d7cccde677255dd65ac74dde599e2349fda740fa39473826c7bfc70b10
https://etendering.tenderboard.gov.om/product/tmsbidopen/TenderOpeningQCRStatusAction.action?callAction=showOpeningStatus_public&strTenderNo=62644&PublicUrl=1&CTRL_STRDIRECTION=LTR&encparam=callAction,strTenderNo,PublicUrl,CTRL_STRDIRECTION,randomno&hashval=cda3c622485c840156ea737288cfdda7d82686b05e447b3addf194e0d95ec79f

この中で3番目に高い金額で入札しているのは、「GOLDENSANDSTRANSPORTSERVICESLLC」→「GOLDEN SANDS TRANSPORT SERVICES LLC」となる。

この名前で検索すると、会社のページが見つかり、CEOの名前が見つかる。

Flag: (運営からの要請により名前はマスクしています) (Solved on June 7th, 8:29:18 PM) [awamori]

✅expense (Difficulty: medium, 499 points, 13 solves)

2025年1月、São Miguel do Guamáの市長が、ある食品関連会社にクレジットカード決済で支払った金額(現地通貨)を答えよ。
Flag形式: Diver25{1234.56}(通貨記号/コードは不要)

Free Hint 1:
私的な取引ではないだろう。

Free Hint 2:
日付は取引(トランザクション)を実施した日に準拠せよ。クレジットカードの引き落とし日ではない。

São Miguel do Guamá市のWebページを探してみるが、クレジットカードの取引に関する情報は見つからず...

現市長のInstagramアカウントを特定することは出来た。
https://www.instagram.com/eduardopiox/
以上より、「Eduardo Sampaio」が名前であると考えられる。

日付も変わり、午前9時前に、himitu.tokinaさんが、São Miguel do Guamá市ではなく、国(ブラジル)単位で決済の支払い履歴を調べる方法を見つける。

Despesas com cartão de pagamento

Acompanhe as despesas com o Cartão de Pagamento do Governo Federal (CPGF), que funciona de forma similar a um cartão de crédito, porém, dentro de limites e regras específicas.

Para encontrar as informações sobre despesas com cartão de pagamento do MTE no Portal da Transparência, basta clicar aqui ou efetuar o passo a passo a seguir:

1 - Acessar o Portal da Transparência: http://transparencia.gov.br;

2 - No menu superior, localizar “Consultas Detalhadas” -> “Cartões de Pagamento”;

3 - Utilizar a barra lateral esquerda de filtros para escolher um filtro. Algumas opções de filtro são: documento, órgão, favorecido, fase da despesa, valor, entre outras. Para acessar os dados do MTE, colocar, no filtro “órgão”, o nome Ministério do Trabalho e Previdência ou o código 33000;

4 – Depois é só clicar em Consultar.

Source: https://www.gov.br/trabalho-e-emprego/pt-br/acesso-a-informacao/receitas-e-despesas/despesas/despesas-com-cartao-de-pagamento

日本語訳

支払いカードによる支出

連邦政府の支払いカード(CPGF)による支出を確認しましょう。これはクレジットカードに似た仕組みですが、特定の制限とルールのもとで運用されています。

透明性ポータルで労働・年金省(MTE)の支払いカードによる支出情報を確認するには、以下の手順を行ってください:

  1. 透明性ポータルにアクセスします:http://transparencia.gov.br

  2. 上部メニューで「詳細な検索」→「支払いカード」を見つけてクリックします。

  3. 左側のフィルターバーで任意のフィルターを選択します。フィルターには、書類、機関、受益者、支出段階、金額などの項目があります。MTEのデータを取得するには、「機関」フィルターに「労働・年金省(Ministério do Trabalho e Previdência)」またはコード「33000」と入力します。

  4. 最後に「検索」をクリックするだけです。

上記の手順に従い、「http://transparencia.gov.br」にアクセス。
https://portaldatransparencia.gov.br/」に飛ぶ。
「Cartões de Pagamento」をクリックし、「https://portaldatransparencia.gov.br/cartoes/visao-geral」に飛ぶ。
「Acessar consultra」をクリックし、左のフィルターについて、以下の値に設定する

  • Busca Livre
    • Eduardo Sampaio(Instagramで発見した名前)
  • Mês extrato
    • Início: 01/2025
    • Fim: 02/2025

https://portaldatransparencia.gov.br/cartoes/consulta?paginacaoSimples=true&tamanhoPagina=&offset=&direcaoOrdenacao=asc&palavraChave=Eduardo+Sampaio&de=01%2F01%2F2025&ate=28%2F02%2F2025&colunasSelecionadas=linkDetalhamento%2CtipoCartao%2CorgaoSuperior%2CorgaoVinculado%2Ccpf%2Cportador%2CcodigoFavorecido%2CnomeFavorecido%2CvalorTotal

そうすると、一件だけヒットする。

支払先(Nome do Favorecido)である「BURITI DISTRIBUIDORA DE ALIMENTOS LTDA」について調べると、食品系の会社であることがわかる。
https://portaldatransparencia.gov.br/cartoes/consulta/pessoa-juridica/17490191000110

以上より、先ほどの支払い履歴が本問題に関係する情報であり、答えは「1.593.081,94」とわかる。

Flag: Diver25{1.593.081,94} (Solved on June 8th, 9:01:34 AM) [himitu.tokina]

hardware

✅UART (Difficulty: hard, 495 points, 24 solves)

https://www.office-partner.de/tp-link-archer-ax20-12778639

この商品のイーサネットスイッチコントローラに直接UARTでアクセスを試みたい。どの部品の、どのピンにアクセスすればいいだろうか。
PCB上の部品番号 と、その部品の UART RX / UART TX ピン番号 を答えよ。ピン番号は部品の仕様に準拠せよ。
なお、ピンヘッダやコネクタが利用可能な場合でも、イーサネットスイッチコントローラのピン番号を答えてほしい。
Flag形式: Diver25{PCB上の部品番号_UART RXピン番号_UART TXピン番号}
(例えば、イーサネットスイッチコントローラが T21 という部品番号で、RXのピン番号が120、TXのピン番号が150であれば、Diver25{T21_120_150}となる)

Free Hint:
ハードウェアにも複数のバージョンが存在する点には注意しよう。いくつかのサイトでは商品名にバージョンが記載されているはずだ。

リンク先の商品は、「TP-Link Archer AX20 AX1800 V2 Dualband Wi-Fi 6 Router」である。

luminさんが以下の情報を見つけてきた。

fccid.ioに、本製品の情報が公開されている。
https://fccid.io/TE7AX20V2


https://fccid.io/TE7AX20V2/Internal-Photos/10-Internal-Photos-5053132より、PCB上の部品番号_UARTはU7。



https://lcsc.com/datasheet/lcsc_datasheet_2103121437_Realtek-Semicon-RTL8367S-CG_C2760849.pdfより、RXピン番号_UARTは45、TXピン番号は46となる。

以上より、答えは、Diver25{U7_45_46}となる。

Flag: Diver25{U7_45_46} (Solved on June 8th, 3:01:32 AM) [lumin]

✅phone (Difficulty: medium, 441 points, 78 solves)

2016年7月23日~24日、この携帯電話の発売に先立ってEMI試験が行われた。試験は三重県の会社が実施したようだ。その試験に供された端末のシリアル番号を答えよ。
シリアル番号に / や - といった記号を含む場合、その記号も含めて記載すること。
Flag形式(例): Diver25{123-45/6789-0}

Free Hint:
シリアル番号は情報源に記載されている通りでよい。

添付ファイル


画像を拡大すると、「SH-01J」と書かれていることがわかり、以下のケータイであることがわかる。
https://ja.wikipedia.org/wiki/SH-01J
「SH-01J」について調査すると、以下の記事がヒットする。
https://s-max.jp/archives/1700029.html
(Wayback Archieve版: https://web.archive.org/web/20250321110748/https://s-max.jp/archives/1700029.html)
これより、FCC IDが「APYHRO00240」であるとわかる。

fccid.ioで「APYHRO00240」を検索すると、以下のWebページが見つかる。
https://fccid.io/APYHRO00240
https://fccid.io/APYHRO00240/Test-Setup-Photos/Pt15B-APYHRO00240-TestSetupPhoto-confidential-11380556H-B-3109247を見ると、「Mie-ken」と書かれており、問題文の内容と一致する。

https://fccid.io/APYHRO00240/Test-Report/Pt15C-WLAN-BT-LE-APYHRO00240-TestReport-KL80160313-3109153を確認すると、シリアルナンバーを確認できる。

とりあえず、上の二つのどっちかかと思い、フラグを投稿してみるが、どちらもIncorrect。

Incorrect Flag: Diver25{004401115830891}
Incorrect Flag: Diver25{004401115830727}

「Date of Test: July 22 ~ 30, 2016」で一致しているかと思ったが、もっと限定できる情報があるのかと思い、再度調査を始める。

https://fccid.io/APYHRO00240/Test-Report/Pt15B-APYHRO00240-TestReport-11380556H-B-3109241の中に、三重県の企業「UL Japan, Inc. Ise EMC Lab.」かつ「Date of Test: July 23 and 24, 2016」の報告書が見つかり、シリアルナンバーが書かれていることを発見する。

シリアルナンバーは「004401/11/583099/0」。

Flag: Diver25{004401/11/583099/0} (Solved on June 7th, 4:13:08 PM) [zackey-heuristics]

military

✅object (Difficulty: medium, 359 points, 120 solves)

69.216246, 33.378242 には大きな構造物が存在する。この構造物のプロジェクト番号および、構造物の名称(固有名詞)を 現地語 で答えよ。
Flag形式: Diver25{プロジェクト番号_名称}(例: Diver25{955А_Борей-А})

Free Hint:
プロジェクト番号は工場の番号ではない。

https://maps.app.goo.gl/33wAJEogrXV37ZYg8
について、調査を行うと、潜水艦の情報が見つかる。
https://virtualglobetrotting.com/map/russian-as-31-losharik-spy-submarine-shield-enclosure/view/google/
この情報により、格納庫のプロジェクト名ではなく、潜水艦のプロジェクト名を訊かれているのではないかと考えていた。

http://www.hisutton.com/Spy Sub - Project 10831 Losharik.html

上記の情報より、Diver25{10831_Лошарик}と答えるがIncorrect。

Incorrect Flag: Diver25{10831_Лошарик}

luminさんが、潜水艦ではなく、格納庫の情報を発見する。
http://militaryrussia.ru/blog/category/133/topic/224/topic/224/topic/topic-823.html
http://militaryrussia.ru/blog/topic-822.html
問題の条件に一致するのは、ПД-72の方。

したがって、答えは、Diver25{13560_ПД-72} となる。

Flag: Diver25{13560_ПД-72} (Solved on June 7th, 4:59:46 PM) [lumin]

✅worker (Difficulty: easy, 499 points, 12 solves)

"object" の問題で示された構造物で仕事をしていた1964年生まれのある人物は、Akhtubinskに居住しているとされる。
この人物が1987年~2009年にかけて勤務していた組織のOGRNを答えよ。
Flag形式: Diver25{1234567890123}

warheroes.ruやelections.istra-da.ru, vk.comなどを検索し、「ПД-72 в.ч 13090(軍部隊13090に所属するПД-72型浮きドック)」であることがわかる。

yandexで「старший матрос ПД-72 в.ч 13090」というワードで検索すると、https://i.namebook.clubというサイトで、「ПД-72」で働いていた人の一覧が見つかる。
その中で問題文の条件に当てはまる人を探すと、1987年~2009年にかけて「26273」という組織で働いていたことがわかる。
「26273 OGRN」で検索すると、以下のページがヒットする。
https://www.opensanctions.org/entities/ru-inn-3001008142/

以上より、Diver25{1023000507936}が答え。

Flag: Diver25{1023000507936} (Solved on June 8th, 11:18:18 AM) [himitu.tokina]

✅radar (Difficulty: easy, 481 points, 45 solves)

画像 / Image:
https://drive.google.com/file/d/1hHoRFkG3ZpiQvgBN5wN9BMIkiF5WSIB1/view?usp=sharing

画像に写っているものは、福建省に存在する、中国人民解放軍東部戦区のレーダー施設であると考えられる。
公式な情報は明らかにされていないものの、オンライン上で中国の軍事を分析している人々がこの基地を運用する部隊と分隊の番号を特定しているらしい。
もちろん、オンライン上の情報だけを鵜呑みにするわけにはいかないが、ひとまず検討する価値はあるだろう。
その情報を探り当て、教えてほしい。
Flag形式: Diver25{部隊番号_分隊番号}(例えば12345部隊の56分隊のとき、Diver25{12345_56} となる)
Image source: Google Earth

Free Hint 1:
画像はノースアップである。

Free Hint 2:
オンライン上には誤った情報も存在しています。注意してください。一方、信憑性を高める公的な情報も存在しています。

リンク先の画像

レーダから水平線の先を見るレーダーで主に台湾に向いていることがわかるため、福建省の海岸で台湾に向いているところを探してレーダの都市名を見つける。
https://maps.app.goo.gl/gR29FMQiWY6r6yNJ8
より、福建省福州市長楽市であることがわかる。

https://redtsai.blogspot.com/2019/12/blog-post_97.html
より、福建省福州市長楽市にある舞台は、以下の部隊で、

92985部队84分队 福建省福州市長樂市下沙村*

と書かれている。
また、「92985部队84分队 福建省福州市長樂市下沙村」とYouTubeで検索すると、以下の動画がヒットする。
https://www.youtube.com/shorts/9kPH9wPPuBc

以上より、92985部隊の84分隊だとわかる。

Flag: Diver25{92985_84} (Solved on June 8th, 12:27:23 AM) [lumin]


おわりに

2回目のDIVER OSINT CTF、今回も前回と同じメンバーでDiscordに集まり、ワイワイ楽しみながら参加できました。
チームメンバーのluminさん、awamoriさん、ykameさん、himitu.tokinaさん、yu1kさんには、改めて感謝申し上げます。
結果としては、順位は4位。記述式問題を除けばあと2問で全問正解という、非常に惜しいところまで迫りました。
個人的には悔しさもありますが、内容の濃い24時間を過ごせたなと思います。

出題傾向については、運営の趣味や関心が色濃く反映されていた印象があります。
これは良し悪しではなく、そういう特色のあるCTFとして、参加者側も割り切って臨むのが健全だと思います。
次回、DIVER OSINT CTFに取り組む際には、例えば航空系の問題に備えてFlightradar24のビジネスプランを契約するといった「投資」が上位入賞のための作戦の一つになりそうです。
また、運営想定の難易度と参加者が感じる難易度にはやはりギャップがあるとも感じました。
「easy問題がeasyでない」のはDIVER OSINT CTFの名物とも言えるかもしれませんが、OSINT CTF初心者が最初の壁でつまずき、興味を失ってしまうリスクもあると思いました。
難易度調整って、本当に難しいですね。

こうした情報探索のハードルを下げてくれる存在として、ここ1年で劇的に進化したLLMやAIの影響は非常に大きかったと感じています。
ChatGPT、Google Lens、Gemini、NotebookLM、Claude……
画像解析、多言語翻訳、要約、コード実装、問題の解き方の方針立てなど、あらゆる面でOSINT CTFの「時短ツール」として活躍しました。
問題数が前回より増えた中でも、全問正解や高得点を記録するチームが多かったのは、これらのツールの力による部分も大きいのではと思います。
少なくとも、自分が解答した多くの問題では、LLMによって糸口が見えました。
ただし、ハルシネーションのリスクがある以上、LLMはあくまで「補助ツール」であり、最後は人間が確認・検証する姿勢が不可欠です。

この1年間、さまざまなOSINT CTFに挑戦し、実際のOSINT業務にも関わらせていただく中で、改めて感じているのは、OSINT CTFと実際のOSINTは、似て非なるものであるということです。
2025年5月31日に開催されたLCL-Tokyo 2025 Springで、福森大喜さんが「CTFは筋トレのようなもの」とおっしゃっていましたが、この比喩はとてもしっくりきます。
プロのスポーツ選手が筋トレを欠かさないように、OSINT実務者にとってもCTFは鍛錬になります。
ただし、筋トレだけでプロスポーツ選手になれないように、CTF「だけ」では実務に通用しないという点も、忘れてはいけないとも思いました。

最後に、魅力的なCTFを実施・運営してくださったDIVER OSINT CTF運営の皆さんにお礼を申し上げたいと思います。
本当にありがとうございました!次回の開催も心より楽しみにしています。


P.S. 前回のWriteupでも、直近のOSINT CTFの開催情報を貼っていたので、今回も。

  • SHUTLOCK CTF 2025
    • https://shutlock.fr/
    • 開催期間
      • 2025-06-20 20:00 CEST ~ 2025-06-30 20:00 CEST
      • 2025-06-21 03:00 JST ~ 2025-07-01 03:00 JST
    • 個人戦(チーム戦ではない)

Discussion