Full Weak Enginner CTF 2025 Writeup (Forensic/OSINT)
まえがき
Full Weak Engineer CTF 2025 にチームsknbで参加し、733チーム中2位でした。
自分が sknb のメンバーとして CTF に出るのは初めてで、チームのみんなの解くスピードが本当に圧倒的で、その傍らで自分はほぼ Forensic/OSINT 芸人として動いていました。
Crypto や jail にも少し挑戦してみたものの、最後まで刺しきれず悔しい思いをしたのも正直なところです。
Writeup
[Forensic/OSINT, Easy] GeoGuessr2 (320 Solves)
問題文
この写真を撮っている人の座標を指定してください。 また、座標を直接指定すると誤差の許容範囲が表示されません。マウスクリックでご確認ください。
まず、Google 画像検索で何かヒットしないか確認したところ、以下のような問題の写真と同じホットドックのお店が載った写真を含む Facebook の投稿を発見しました。
投稿の内容は「FFM/MAINZ/K-TOWN にツアーに行ってきたよ!」というものであり、調べてみると国はドイツで、それぞれの地名は以下のように対応することが分かりました。
・FFM → Frankfurt am Main(フランクフルト)
・MAINZ → Mainz(マインツ)
・K-TOWN → Kaiserslautern(カイザースラウテルン)
このうちのどこかである可能性が高いことがこの時点で言えるので、あとは店をヒントにして探っていくことにしました。写真を見た感じだと屋台っぽい店であまりヒットしないだろうと判断して、焦点を写真の左側に写っている黄色い看板の店に移しました。
頑張ってその文字を読んでみると、店の名前は「Maydonoz Döner」であることが分かりました。
そして、Google map で「Maydonoz Döner Germany」と調べ、上の3つの都市にその店がないかを探してみると、Frankfurt, Kaiserslautern の2つにはその店が存在することが分かりました。
とりあえず Frankfurt の方からその店付近をストリートビューで見てみると、先ほどの Facebook に投稿された写真の背景に広がっていた建物が周囲にあることが確認できたので、まさにここであると確信しました。
投稿の写真にあった通りの場所に先ほど調べた店がないことが確認できますが、ストリートビューは 2022 年に撮られたものである一方、Facebook の投稿は 2024年に撮られたものであり、比較的新しくできたお店なのだと考えられます。
答えとしては以下の写真のピン周辺を指定すれば正解となります。
[Forensic/OSINT, Medium] EXIT (189 Solves)
問題文
Which country is this?
Answer the country name using ISO 3166-1 alpha-3.
Flag format: fwectf{FWE}
フラグの提出回数に制限があります。ご注意ください
There is a limit on the number of flag submissions. Please be careful.
解答回数は5回に制限されています。
まず、この避難誘導灯において "Gessler" という文字が入っていたので、そのメーカーについて調べたところ、ドイツのメーカーであることが分かりました。とりあえず早解きしたいという気持ちがあったので、 fwectf{DEU}
で投げてみたところ案の定ダメでした。
もう少し写真を観察すると、写真の右上に "AVST.VENTILER VARME" という文字が書いてあることに気づき、これを ChatGPT 君に投げたところ、「ノルウェー語かデンマーク語っぽいけど、どちらかというとノルウェー語のほうかな~」と返してくれたので、fwectf{NOR}
を投げたところ合っていました。
Flag: fwectf{NOR}
[Forensic/OSINT, Beginner] QR (110 Solves)
問題文
RGB RGB RGB
RGB RGB RGB
RGB RGB RGB
以下の写真からフラグを求める問題です。
これを実際に読み取ってみると以下のような文字列が出てきます。
367
294
815
まず気づいたのが、1~9の数字がそれぞれ出ているということで、何か順番を表しているのではないかと考えました。9等分したものを並び替える問題かと思ったのですが、仮に
123
456
789
のように並び替えるとすると、QR のファインダが隅でなくなってしまうので異なると判断しました。
謎にカラフルだなと思ったので、色が大きなヒントになるのだろうと考えました。
問題文を思い出してみると、3×3 で RGB と書いてあったので、一旦 RGB に直して、QR を読み取ったときの順番で ASCII 方式で読めばフラグが得られると確信しました。
実際に RGB 値を直してみると以下の通りになります。
(123, 81, 82) (111, 108, 111) (117, 114, 95)
(99, 116, 102) (54, 101, 125) (95, 97, 110)
(57, 56, 55) (102, 119, 101) (100, 95, 99)
こちらに関して、先ほどの順番で RGB → RGB → ... の順番で値を並べていくと、以下のようになりまう。
102, 119, 101, 99, 116, 102, 123, 81, 82, 95, 97, 110, 100, 95, 99, 111, 108, 111, 117, 114, 95, 57, 56, 55, 54, 101, 125
これを ASCII 方式の沿って読むとフラグが得られます。
Flag: fwectf{QR_and_colour_9876e}
[Forensic/OSINT, Easy] Osaka Expo Pavilion Quiz! (78 Solves)
大阪万博…だけど様子がちょっと変? この映像が放送された館を答えよ
Flag形式:fwectf{館名(日本語可)}
自分が取り掛かる前から Curiosity さんが以下の URL を見つけてくれていました。
「6ABC」というロゴと映像の古さから、1970年の方の大阪万博の朝日放送テレビのアーカイブであろうと判断してくれたらしいです。
自分もこの中にあると確信したので、夜ご飯を食べながら全探索していました。外観の映像をスキップするなどをして時短していました。結局みどり館の動画の 0:59 辺りの部分と一致することが分かりました。
flag: fwectf{みどり館}
[Forensic/OSINT, Medium] MYAKUMYAKU TOWER (76 Solves)
ミャクミャクみたいなかわいいタワーがあるね!この写真を撮影したのはいつだろう? 撮影日を以下の形式で答えてね(誤差±1日許容) Flag形式:fwectf{YYYMMDD} 例:2025年8月30日の場合 fwectf{20250830}
「ミャクミャクみたいな」と問題文にあり、見た目が東京タワーだったので、一旦「万博 東京タワー」で検索してみました。すると、2023年11月30日に東京タワーが万博カラーにライトアップされたという記事を複数見つけた。光り方が少し違うなと思いつつ、 fwectf{20231130}
とフラグを提出してみたところ案の定ダメでした。
Curiosity さんも調べてくださり、「クリスマス・ライトダウンストーリー」という毎年12月恒例のライトアップが近そうという意見を共有してくれました。確かに似ていると思い、「東京タワー ハートライトアップ」で調べて画像を見ていったところ、色の光り方が完全一致している写真を見つけました。
そのサイトに飛んでみると、東京タワーのライトアップ情報が色々と書かれていましたが、ピンポイントでその写真がどのイベントのライトアップであるかは書かれていませんでした。
そこで先ほど見つけた写真を画像検索にかけてみたところ、以下のサイトを見つけました。
この中に光り方が完全一致するものを発見。
このイベントについて調べてみると、「日仏交流160年記念 スペシャルダイヤモンドヴェール」というライトアップイベントであることが分かり、開催日時としては 2019年9月14日から15日だったらしいです。
flag: fwectf{20190914}
[Forensic/OSINT, Easy] git pradator (67 Solves)
Oh no! While developing the game, I accidentally exposed an important key! I managed to delete one right away, but I still haven’t removed the other one… site:https://github.com/gitpreUwU/horse_racing
2つのフラグの断片が散らばっているので、その2つのを見つけてくださいという問題です。
15 commit あるので、それぞれ適当に見ていくと https://github.com/gitpreUwU/horse_racing/commit/825ca69471333d8b5d2979a6c5c7c56f27730f66 に最初の半分のフラグ fwectf{y0u_ar3_g
がコメントに書かれているのが確認できるできます。
残りのコミットを見てみても後半のフラグは見つからない。
問題文から分かる通り、おそらくもう片方は消したつもりなのだろうと考えられますが、問題となっているからにはもちろんどこからか確認できるはず。先日先輩と話していて force push しても結局 API Key が見られてしまう可能性あるよ~という話を聞いていたので、実際にどのように確認できるかを調べてみたところ、以下のサイトを見つけました。
このサイトによると force push しても 30 日間くらいは Activity に履歴が残ってしまうとのこと。
というわけで、main ブランチの Activity を確認してみると、以下のように force push の履歴も確認できることが分かりました。
実際この add flag というコミット
を確認すると、後半のフラグの断片 1t_pr3da70r!_78e0}
があることが確認できました。
Flag: fwectf{y0u_ar3_g1t_pr3da70r!_78e0}
Discussion