🎣
【Writeup】DIVER OSINT CTF 2025
2025年6月7日~8日に開催されたDIVER OSINT CTF 2025 にチームmeaningful morningで出場しました。昨年に引き続き、2回目になります。最終順位は47/668チームでした。(6012pt)
本記事では、私 (Kenny)が主に解いた問題に関して紹介します。
1. 船舶の調査(Ship)
- 提供された画像をもとに コールサイン(JPIK) を読み取り。
- MarineTraffic にてコールサインで検索。
- 表示されたページから IMO番号(9767675) を特定。
✅ IMOは一度付与されると変更されない不変の識別子。
2. PDFファイルから作成者情報を得る(Document)
- CFAY(米海軍横須賀基地)の空港バス案内PDFをダウンロード。
- macOSの「プレビュー」でメタデータを確認。
- 作成者(Author)項目から文書作成者を特定。
3. フライトの出発地点に注目(Flight From)
- 動画内の航路図を元に出発点を推定。
- 地図と照合し、陸上自衛隊 立川駐屯地と特定。
4. バスの番号から特定(Night Accident)
- 車体のロゴ(SBS Transit)→ シンガポール。
- バス背面のLED表示→ 「52」「58」番のバス。
- 両バスが共通で停まる停留所を調査(3箇所ぐらいヒット) → ストリートビューで場所特定。
5. 第二白川橋梁の流用元を特定(Bridge)
- 動画後半の「パチンコ」「セブンイレブン」から熊本市内の場所を特定。
- 第二白川橋梁は1953年の洪水後に架け替え。
- 論文「熊本県下における近代橋梁の発展史に関する研究」で、
転用元:「澱川橋梁」 と記載あり。 - 「澱川橋梁」では誤答、「淀川橋梁」で正答 → 表記揺れに注意。
6. 画像検索+複数サイトチェック(Object)
- 指定座標をGoogle Earthで表示、白い構造物にピン。
- 浮きドックに酷似 → 「浮きドック(ロシア語)」+地名で検索。
- ロシア語でのプロジェクト番号と名称を取得。
7. 画像サイトから画像を特定(Afghanistan)
- 動画のスクリーンショットを取得。
- 画像検索+「AFP」「Afghanistan」などのワード。
- Getty Imagesの該当ページを発見。ここに日付がある。
- ダウンロードした画像の**EXIFに撮影場所(Camp Bostick)**が記録。
💡 Google画像検索では、画像をクリック → 「画像の配置場所」から開くとその写真を開ける。
8. OSMのAPIを叩いて特定(Convenience)
- overpass-turbo.eu にてOSMクエリを実行。
- コンビニ+スーパーが半径100m以内にある公園を抽出。
[out:json][timeout:120];
//---- 検索対象エリア:青森県 ----
{{geocodeArea:青森県}}->.pref;
//---- 店舗ノード ----
nwr(area.pref)["shop"="convenience"]->.conv;
nwr(area.pref)["shop"="supermarket"]->.sup;
//---- 条件を満たす公園(way のみ) ----
way(area.pref)["leisure"="park"]
(around.conv:100) // 半径100 m にコンビニ
(around.sup:100) // 半径100 m にスーパー
->.candidate;
//---- 結果を中心座標付きで出力 ----
.candidate out center;
💡最南端に表示されたものはincorrectだったため、2つ目を回答。
おわりに
質問やフィードバックがあれば、ぜひコメントください。
最後に、私の仲間によるWriteupもぜひご覧ください
Discussion