TsukuCTF 2025 writeup

TsukuCTF 2025に参加しました。
osintカテゴリのみ7/8問を解答しました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4078165/d8cdc01f-b376-4286-867e-3c0b62a0c869.png)
とある問題をしらみつぶしの勢いでsubmitした結果。

以下はwriteupになります。
見出しフォーマットは`【カテゴリ/運営による難易度/課題タイトル】最終pts`です。
問題以外は折り畳みにしており「解答」は辿り着いた解答までの直線的な流れを、「読みもの」は紆余曲折の過程や当時の心境を記載しています。

「ルール上、誤答が何度でも許容されているのであればどれだけ確信のないガバ解答だろうがとりあえず入力する」を信条としています。あらかじめご了承ください。

### 【osint/easy/Casca】100pts
> 海が綺麗なこの日本の街は、かつてポルトガルのリゾート地との交流がありました。
> この写真のすぐ右側にはその記念碑が置かれています。記念碑に書かれている「式典の開催日」を答えてください。
> ![casca.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4078165/53656888-d955-4cf0-8983-723baf725136.jpeg)

<details><summary>解答</summary>

検索ワード：「ポルトガル　姉妹都市」
静岡県熱海市とカスカイス（Cascais）が姉妹都市であることが判明する。

検索ワード：「熱海市　カスカイス　記念碑」
日付の確認可能な記念碑の写真を探す。

`TsukuCTF25{2014/06/06}`
</details>
<details><summary>読みもの</summary>

後述するdestroyedの次に苦戦した問題でした。与えられた画像をGoogleレンズで検索してもあまりピンと来る結果にならない、「かつて」「交流がある」という文脈をどう解釈すればいいのかいまいち掴めなかった関係で南蛮貿易とか…？と随分時代を遡りました。何も出なかったので一旦別の問題に着手。
その後solveの増え方を見る限りあまり難しい問題ではないのだろうと考え方を変え、地域間の交流として最もあり得そうな「姉妹都市」を検索ワードに。在ポルトガル日本国大使館の情報でカスカイスの文字列を見ると同時に「（課題タイトル）これか！」と叫びました。

https://www.pt.emb-japan.go.jp/itpr_ja/00_000161.html
</details>

### 【osint/easy/curve】100pts
> これは日本の有名な場所の一部です。あなたはこの写真の違和感に気づけますか？
> フラグはこの場所のWebサイトのドメインです。
> ![curve.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4078165/01ff4380-9f88-42f2-a853-9c91fc71b899.jpeg)

<details><summary>解答</summary>

検索ワード：「スパイラルエスカレーター」
複数箇所に存在しているが、内１つが神奈川県横浜市にあるランドマークタワー併設のランドマークプラザだと判明する。

検索ワード：「ランドマークプラザ」
公式ホームページを探す。

`TsukuCTF25{yokohama-landmark.jp}`
</details>

<details><summary>読みもの</summary>

与えられた画像を見てスパイラルエスカレーターだと認識した瞬間、脳内を過った「インテックス大阪」のお告げに従いドメイン名を脊髄反射で検索してsubmitしましたが流石に違いました。そもそもインテックス大阪のエスカレーターは課題のような階層構造ではありません。
日本国内に現存している数が少ないことは知識としてあったので、総当たりを試すつもりで最初にヒットしたランドマークプラザを入力したところあっさり通ってしまいました。流石に調査がガバ過ぎる。witeupを書くにあたって調べなおしました。
<iframe width="560" height="315" src="https://www.youtube.com/embed/AzeBOyHtV9k?si=32Hy5OUheTa4QukS" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>
</details>

### 【osint/medium/destroyed】100pts
> [このTelegramの投稿](https://t.me/etozp/19319)の写真に写っている学校を特定してください。
> フラグフォーマットはその場所の座標の小数点第4位を四捨五入して、小数第3位までをTsukuCTF25{緯度_経度}の形式で記載してください。
> **注意: この問題を解く過程で、戦争に関わる直接的な画像が表示される場合があります。**
> 23:14 GMT+9 追記: フラグを追加しました

<details><summary>解答</summary>

Telegramの投稿でミサイルにより破壊された学校であること、投稿日から2022/12/24以前の出来事であることを把握する。
投稿写真をGoogleレンズで検索すると2022/12/24に投稿された、Telegramと同じ学校を取材した情報がヒットする。学校があったのはザポリージャ州レジナだと見当がつく。
Googleマップでレジナを検索し航空写真に切り替えて、条件に合致しそうな建造物を探して緯度経度を取得する。

`TsukuCTF25{47.806_35.357}`
</details>
<details><summary>読みもの</summary>

**フラグが追加されるまで悩み続けた問題。** 途中で心が折れて終了後に解けた方のwriteupを読もう…と大の字になっていました。Discordのannouncementsにフラグ追加の告知があり無事correct。

競技中は現地表記（Лежине）で調査を行っていましたが英語表記（Lezhyne）の方が情報の整理は楽だったかもしれない。~~現地表記の使い方がまずかった可能性も高い。~~
解答に記載した「条件に合致しそうな建造物」については

+ 村の規模から考えて学校は１つしかない
+ 写真および学校という施設都合から屋外活動が可能な庭あるいは運動場を併設し遊具がある
+ 写真からＴあるいはＬ型の建造物（Ｈ型はあるかも。ロ型ではなさそう）
+ 写真から屋根の色は白色系

に絞って航空写真を探しました。
Googleマップの航空写真が何年に撮影されたものなのかは特定できないので指定が可能なGoogleEarthも併用。結果的には変わりませんでした。

あたりをつけたのは以下の建造物。

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

「Школа」として登録されているようです。翻訳すれば「学校」なのでこの地点から誤差を加味しフラグとしましたが通らず。
OpenStreetMapだと学校としての敷地や各建造物の詳細がわかりそうです。先程の建物は校舎、この場所が正しいのであれば一緒に写っていた煉瓦色の建物はボイラー室の模様。

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

敷地における各方角の緯度経度を取得して敷地内を網羅する全パターンをフラグとしても通らず。ここまでやって駄目なら根本的に位置が間違っているのだろうと考えることを放棄しましたが、この時の全パターンを消していなかったことでフラグ追加の告知に気づくと同時にsubmitができたので命拾いしました。
</details>

### 【osint/medium/rider】100pts
> 遠くまで歩き、夕闇に消える足跡
> 煌めく街頭が、夜の街を飾る
> 傍らの道には、バイクの群れが過ぎ去り
> 風の音だけが残る
> 
> 光と影の中、ふと立ち止まり思う
> 私は今、どこにいるんだろう
> 
> フラグフォーマットはこの人が立っている場所のTsukuCTF25{緯度_経度}です。ただし、緯度および経度は小数点以下五桁目を切り捨てたものとします。
> <details><summary>ヒントを見る</summary>
> 
> この詩に意味はありません。</details>
> ![rider.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4078165/76d934f7-2920-48f3-b066-84bc86647e6f.png)

<details><summary>解答</summary>

検索ワード：「oti fried chicken」
右端に映り込んでいる看板はインドネシア共和国に複数の店舗を持つチェーン店であることが判明する。

公式ホームページの店舗一覧を総当たりして店舗を特定し緯度経度を取得する。

https://otifriedchicken.com/kunjungi-kami/

`TsukuCTF25{-7.3189_110.4970}`
</details>
<details><summary>読みもの</summary>

与えられた画像の時点でぱっとわかるのは全世界的には少数派の左側通行であること、点字ブロックが設置される程度には栄えた都市であることです。
ただし国が特定できても今回の課題としては仕方がないのでよりピンポイントで絞り込める情報があるのだと判断し看板を調査することにしました。見たとおりの情報を入力したところ「glasses man fried chicken logo」となり、ケンタッキー・フライド・チキンの情報ばかりが出てきます。**そりゃそうだよ。**

ギリギリ見切れた文字がｉに見えなくもないので検索ワードとしたところ公式ホームページがヒット。サイト内で店舗一覧も見つけることができたので総当たりしサラティガ（Salatiga）店であることを確認しました。大都市であることは判明していたのでGoogleマップから探した方が早かったかもしれませんね。

https://www.google.com/maps/place/@-7.3189891,110.4970485,99m/

余談ですがこの看板の前に映り込んでいるパンダの看板、「今日は運が良いです。」という日本語が記載されているようです。ここインドネシアですよね？
別店舗にもこのパンダが併設されておりそちらの方が読み取りやすかったので参考に置いておきます。

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

店舗のinstagramによれば扱っている商品について日本のデザートだと紹介しています。日本（近いのはクリーム大福やコンビニ各社のミニクレープ？）から着想を得ているのは間違いなさそうなので、店舗名の「KUROBA」もクローバーが由来だったりするのでしょうか。であれば「幸運」的な一文もわからなくはないのですが。

https://www.instagram.com/kuroba.id/p/CaWHKj7Jihr/
</details>

### 【osint/medium/schnee】100pts
> 素敵な雪山に辿り着いた！スノーボードをレンタルをして、いざ滑走！
> フラグフォーマットは写真の場所の座標の小数点第4位を四捨五入して、小数第3位までをTsukuCTF25{緯度_経度}の形式で記載してください。
> ![schnee.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4078165/b39bfe1b-4fa3-47c7-9eae-c73ddc9a9fb4.jpeg)

<details><summary>解答</summary>

検索ワード：「Buri Sport」
映り込んでいるのぼりはスイス連邦に複数の店舗を持つチェーン店であることが判明する。

公式ホームページの最下部にある地図から総当たりして店舗を特定し緯度経度を取得する。

https://www.burisport.ch/

`TsukuCTF25{46.624_8.040}`
</details>
<details><summary>読みもの</summary>

のぼりに店舗の名前とURLが記載されていることに気づいてはいたのですが画像検索の方が早いかな…と思いまずはそちらを試すことに。結果としては位置に結びつく直接的な情報が簡単には見つけられなかったため、このURLへアクセスすることになりました。

チェーン店のようなのでショップリストがないかとトップページをスクロールするとGoogleマップに３箇所のピンを立ててくれています。どの店舗もGoogleストリートビューで散策できたので位置を調整して緯度経度を獲得しました。

https://maps.app.goo.gl/p2UXNJ8GvVvm8vZYA
</details>

### 【osint/easy/buildings】100pts
> あの建物が建ったら、また空が狭くなるんだろうな。
> フラグフォーマットはこの人が立っている場所のTsukuCTF25{緯度_経度}です。ただし、緯度および経度は小数点以下五桁目を切り捨てたものとします。
> ![buildings.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4078165/d3b1e65a-2cbd-4038-a822-51f32275f963.jpeg)

<details><summary>解答</summary>

Googleレンズで中央奥に映っている建造物に絞り込んで検索すると「ロイヤルパークス品川」であることが判明する。

Googleストリートビューで画像の地点を探し緯度経度を取得する。

`TsukuCTF25{35.6318_139.7430}`
</details>
<details><summary>読みもの</summary>

太さの異なる外壁が不規則に現れるのが特徴的な建造物のようで画像検索が活きました。

撮影位置は建造物から数百メートルは離れていそうだったので、Googleマップで目標の建造物の位置を確認しGoogleストリートビューで探すことにしました。
北にある橋（浜路橋）から初めてみましたが、北と東は高層ビルに囲まれていて課題のような見晴らしは難しいようです。西に移動したところで手前に写っていた水色の建物を発見したので写真左側、右側に見える建物と交差点が見えるように調整し緯度経度を獲得しました。

writeupを書くために見返したところGoogleストリートビューではまだこの建造物は建設中でした。競技中は手前の建物しか目に入っておらず気がついていませんでした。確認時点では2023年9月の画像のようです。

https://maps.app.goo.gl/Q75vbvTbc3qP3qCR6
</details>

### 【osint/medium/power】100pts
> 力を感じてきた。
> 
> フラグフォーマットはこの人が立っている場所のTsukuCTF25{緯度_経度}です。ただし、緯度および経度は小数点以下五桁目を切り捨てたものとします。
> ![power.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4078165/05fff090-f8d9-4b41-8b6e-b1864f2fbba5.jpeg)

<details><summary>解答</summary>

地図の下にある点字を読むと「トーキョート　シテイ　キューセキ　マサカドヅカ」となる（東京都指定旧跡将門塚）。

Googleストリートビューで画像の地点を探し緯度経度を取得する。

`TsukuCTF25{35.9872_139.7627}`
</details>
<details><summary>読みもの</summary>

例によってGoogleレンズではアメリカ合衆国を案内されたので出題意図として点字を読めということだなと判断しました。
地図の方が情報量が多いかと思い解説よりも先に読んだのですが「チドリイ（？千鳥居？）」「セキヒ　イシドーロー（石碑　石どうろう？）」「タイコバシ（太鼓橋）」「ジュモク（樹木）」「ゲンザイチ（現在地）」「キネンジュ（記念樹）」「イシダタミ（石畳）」「スロープ（スロープ）」「ミナミ（南）」と場所に繋がる情報は一切出てこなくていっそ面白かったです。

解説１文目を読み終わって課題文の意味を悟りました。 ~~こわいよ~~
wirteupのために確認しなおしたのですが地図内の上部に描かれているのは「千鳥岩」で「ワ」の字を見落としていたようです。「イシドーロー」は「石灯籠」ですね。

https://maps.app.goo.gl/Nce6WTRhzmkSKre9A
</details>

### 【osint/hard/hidden_wpath】496pts
> 新しいブログサイトを作成したので、ぜひ見に来てください！
> ちなみに隠されたページがあります😎
> 
> 注意点: ツールの使用は許可されていますが、短期間で大量にリクエストを送信しないでください。隠されたページのリンクは100文字以上あり、かつ推測不可能です。
> 
> 
> <details><summary>ヒントを見る</summary>
> 
> OSINTだけではなく、Webの知識が必要かもしれません。</details>
> <details><summary>ヒントを見る</summary>
> 
> 特定のページを開くと、フラグが手に入る処理が設定されています。</details>

解けませんでした。カテゴライズがwebではなくosintであることが取っ掛かりだろうと踏んで「WordPressあるある設定漏れ」「WordPress特有の脆弱性」の調査かと考えたのですが手が進まなかったです。