[write up] TsukuCTF2022 (team:wrightias; 8th place)
まえがき
10/22-23に行われたTsukuCTF2022にチーム「wrightias」で参加してきました。結果は「8位」でした!
チームとしては、昨年の「Open xINT CTF 2021」、今年行われた「GNIユース・ファクトチェックチャレンジ2022」に続く、OSINT/Verification系コンテストへのチャレンジでした。私たちのチームはCTFチームというよりは、OSINT趣味集団といった感じに近く、サイバーセキュリティに関わる問題は全くの不得手です。そんな中でトップ10位に入れたのはかなり善戦だったのではと思います。情報技術に深くかかわらないと考えられる問題は大方正解することができました。
今回のCTFは全完チームもあり、弱小の我々がwrite upを書くメリットは薄いかなとも考えていましたが、OSINT問題などでは皆さんに知見を提供できるかなと思いましたので。チームを代表しまして、リーダーの私のアカウントからwrite upを投稿させていただきます。
10/30追記
こちらのwrite upがWriteup賞をいただきました。運営の皆さんありがとうございました。
用語
解説文に用いる用語を説明します。
リバース・イメージ・サーチ
画像で画像やWebサイトを検索する技術を指します。Google Lensが有名ですが、ほかにもいろいろなサービスがあります。wrigtiasでは「InVID」という検証ツールを用いており、このツールを用いると、複数のサイトでリバースイメージサーチを簡単に行うことができます。
ジオロケーション
画像の撮影場所を特定する問題を表す用語です。
Google Earth
PCインストール版「Google Earth Pro」を指します。一部地域では衛星写真を3Dポリゴン表示してくれるため、撮影場所の割り出しに重宝します。
各問題のwrite up
チームの勝手な判断で、情報技術と結びつきが強い問題には(技術系)
とつけさせていただきました。また、リーダーの私以外のメンバーから寄稿いただいた問題にはアスタリスクをつけています。問題担当者ごとに文体等が異なる点、ご了承ください。
Robot
問題画像右側のポスターをGoogle LensでOCRスキャンし、「华工机器人实・・」と読み取ります。これを検索すると "https://www.scutbot.cn/" が出てきます。これは華南理工大学(South China University of Technology)のロボット研究室のサイトです。フラグはTsukUCTF22{SCUT}
になります。
個人的には、ジオロケーション問題は、①文字情報、②リバースイメージサーチ、③メタデータの順に疑います。
Flash (技術系)
バイナリエディタでbinを開いてみると、ESP32
の文字が見えました、たまたま、以前このマイコンで遊んだことがあったため、メモリダンプ上にWiFiのSSIDが存在し、そこにホテル情報があるに違いないと思いました。ssid
とかで文字列検索していると、apa-316-2428
という文字が見つかり、「アパホテル 316」と調べると、No.316 アパホテル&リゾート〈両国駅タワー〉
が引っ掛かりますので、こちらのホテルの2428号室となります。
Bringer_of_happpiness
黄色い電車をGoogle Lensでリバースイメージサーチし、島原鉄道の車両であることを突き止めます。田舎ローカル線にしては立派な駅ですので、wikipediaで愚直にすべての駅の外観を調べました(駅と駅の移動がGoogle Mapより楽です)。終点の島原港駅が答えであり、Google Earthで撮影位置を割り出せば終わりです。
banana
Yandexでリバースイメージサーチすると、同じ場所で撮影された別の写真が見つかります。その写真をさらにGoogle Lensでリバースイメージサーチすると、場所がわかります。グアムの「デデドの朝市」です。
Yandexはロシアの検索エンジンですが、意外にもリバースイメージサーチは優秀です。
bughunter (技術系)
問題のタグ?にRFC9116とあったのが最大のヒントで答えでした。勉強になりました。
RFC9116は脆弱性の報告方法をWEBサイト運営者がバグハンターに教える方法を定義したもので、/.well-known/security.txt
に情報を記載します。そこにフラグがありました。
inuyama082
Google Lensでリバースイメージサーチすると、店の名前がわかります。フラグの形式がやや特殊なためキーワード「犬山カフェよあけや "ver"」でGoogle検索します("で囲むと完全一致検索になります)。すると、メニューが出てくるので正答できます。
料理問題はメニューを見つけるのがカギだと個人的には思います。
Money
Google Lensで一発ですが、今年の3月に京都旅行に行っていたので解かずにわかりました。
石像や銅像は基本的にLensで一発です。
Attack of Tsukushi
Google Lensでリバースイメージサーチをするだけです。
FlyMeToTheTsukushi*
google lensで写真奥の建物を検索すると福岡空港の管制塔であることがわかった。
TakaiTakai
結構好きな問題です。
画像右奥の高層マンションをGoogle Lensにかけると(ただし、ややシビアできれいに切り取る必要があります)、「中目黒アトラスタワー」であることがわかります。次に、タワー前の緑に囲まれた茶色い学校のような建物(東京音楽大学)をGoogle Earthで付近から探します。二つの建物を特定できれば、撮影した方角がわかります。
このようにやっていくと、撮影場所が特定できます。
と、自慢げに書いているのですが、撮影場所手前の建物から行く方法もあるようで、模範解答が気になりますね。
station
「東豊線」「*北線」と書かれていることから、札幌市と推定します。札幌でホームドアがあるのは地下鉄だけであるそうなので、答えは地下鉄駅に絞られます。画像左の文字情報をよく見てみると、「郷7丁目」「郷13丁目」「18丁目」とあります。ここで、路線図を見ると、これは東西線の連続した駅「南郷7丁目」「南郷13丁目」「南郷18丁目」だとわかります。
「札幌地下鉄 柱」と調べると、札幌地下鉄にはその路線の駅一覧がかかれた柱があり(cf. https://momiji-3539.hatenablog.com/entry/2020/03/13/110910 )、黄色く書かれているのが今の駅だとわかります。黄色い部分の文字の断片と、東西線の駅一覧を合致させると、「西11丁目」駅が答えです。「東豊線」「*北線」と書いてあるところは次の大通駅を表しているのですね。
文字情報はやはり大切ですね。
Where
マルイと東日本銀行が隣接する場所はそうそうないです。これが渋谷駅前であることはすぐわかります。あとは、Google Earthで撮影場所を特定します。文字情報ベースで解ける問題です。
sky*
「wind 7月号 せともの」で検索するとこれが名鉄の発行する雑誌であることが分かった。さらに調べると同雑誌は「ミュースカイ」という特急車両に設置されていることが分かった。ミュースカイの停車駅を総当たりしたところ、名鉄名古屋駅が答えであることがわかった。
余談
この問題、Exifのメタデータに罠が仕込まれており、引っかかると煽られます。悪問です。
douro*
画像を拡大すると「よいほモール」と書かれた敷石があった。googlemapで松阪市・よいほモール周辺の航空写真を探すとそれらしい道路を見つけることができた。
Gorgeous Interior Bus*
google lensで検索するとこの車両が熱海市内を走る「湯~遊~バス」であることがわかった。ネット上のバス停留所リストと突き合わせると次の停留所が熱海であることがわかったため、yadococo.netを用いて周辺の交差点を調べた。
Desk*
右下に「世界文化遺産」の文字とゆるキャラの絵が描かれていた。「斎場御嶽 キャラクター」で調べるとこのキャラクターが南城市のマスコットであることがわかった。「南城市 デスク」で調べるとアニメの聖地であることが分かった。
what_time_is_it
電車に書かれた文字情報「2602」を使って「2602系」「2602 電車」などでGoogleやツイッターで調べると。いろいろ出てきます。詳しい検索ワード等は覚えていませんが、おおむね以下の情報が見つかります。
- この電車は2600系といい、どうやらマニアにはたまらない珍しい列車らしい
- 特急「うずしお」のみで利用される
- マニアの投稿した写真から、撮影場所は「徳島駅」である
- 徳島発の「うずしお」で2600系が用いられるのは、8/14/20/26号のみである
回答回数は5回なので、この時点で徳島駅の時刻表を見れば回答できます。
しかし、答えに至る決定的な情報も模範解答としては考慮されているのではないかと思います。
例えば、マニアのこの投稿は特急以外の列車もすべて一致しています。https://twitter.com/kitaha2sl10/status/1492020645479485441
ただし、この写真は旧ダイヤ?なので、新ダイヤの発車時刻「15:23」が答えになります。新旧のダイヤがネットにはごちゃまぜのようで、数回間違えた時刻を提出してしまいました。。。
PaperJack*
「新聞 全面広告 ゲーム 寺」で検索すると答えが出てきた。
Bus POWER*
土地勘で解いた。
リーダー注釈
彼の家の近所だったようです。私なりの解法をまとめます。
- 文字情報より京都のバスである
- 均一運賃であるので、京都市内?
- フロントガラス左側の「木*鉄工所」の文字情報
答えを知ってから解いているので微妙ですが、これらを合わせて調べれば、 京都府京都市上京区西上善寺町の木村鉄工所さん前だとわかります。
uTSUKUSHIi*
「黄色 ソファ 猫カフェ」で検索すると撮影地と思わしき猫カフェが出てきたため、公式サイトからそれらしい猫の誕生日を調べた。
リーダー注釈
私は永遠にリバースイメージサーチして困ってました。リバースイメージサーチに頼るなよというお話①です。
TsukuCTF Big Fan 1
彼はTsukuCTFの大ファンなので当然TsukuCTFをフォローしているという問題でした。なかなか解けずに悩んでたのでわかったときは苦笑しました。本当のSuperProStalkerは非公開リストで監視すると思います。
TsukuCTF Big Fan 3
引用元をWayback Machineで見つけると、Google Driveへのリンクがあり、そこに架空の個人情報リストがあります。SuperProStalkerさんのツイートにはSuperProStalkerさんのメールアドレスの一部が写ったツイートがあるので、レコードを一意に絞れます。
GrandpaMemory (技術系)
問題文からすぐにPDP-11だとわかりました。なぜなら、
- a.out formatの実行ファイルはUNIXのものである
- UNIXができたのは1971年ごろである
- 当時のUNIXはPDP-11で動いていた
K&R Cを読んだことがあるのでピンときました。
バイナリエディタでa.outを見ると、答えがR2にあると書かれています。がんばって、「7run」というエミュレータ?インタプリンタ?を見つけ(cf. https://github.com/7shi/i8086tools )、逆アセンブルします。出てきたアセンブリ言語を手計算し、R2レジスタの値が答えになります。
moon
リバースイメージサーチに頼るなよというお話②です。ツイッターで「月の満ち欠け 石畳」とやるとすぐ出てきました。
「石畳」という言葉を思いつけるか、ですかね。DefuseBomb* (技術系?)
Defuse bonbは書いてあるデータシートを落として来ると論理構成が分かるので、後は共通一次物理の要領で解くだけです 3のファイルはkicadで読めます
リーダー注釈
コンデンサーなど物理が得意なメンバーに解いてもらいました。データシートを引っ張ってこれれば、あとはパズルを解くだけみたいな感じだったそうです。感謝しかありません。
Lucky Number 777 (技術系)
"{flag}" in luckey_number
ってf文字列じゃないのになんで{flag}
なんて検証してるんだ!?と思ったのが解くヒントになりました。f文字列をうまく使うと解けました。OSINTは大方解いたが、何としても上位に残りたいのでがんばろうと、技術系に挑んでました・・・。詳しい解説は他の人を参照ください。
おまけ:チャレンジしたが解けなかったものとか
TsukuCTF Big Fan 2 (技術系?)
国際化ドメイン名まではわかったのですが、釣り動画を引いて終わりました。skyと作問者が同じだと思うんですが・・・
FlagDM
Googleドキュメントからメールアドレスを入手→GHuntでGoogleMapのレビューを見つける→そこからTwitterに飛ぶ まではできましたが・・・
soder (技術系)
終了間際にReDoSの解法を思いつき、頑張ってましたが最後の一文字がわからず・・・
^TsukuCTF22{4_w47ch3d_p07_n3v3r_b01l.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.?.AB$
おわりに
楽しかったです、メンバーを代表して運営の皆さんにお礼申し上げます。また、楽しく競争できた他の参加者のみなさんにも感謝します。最後に、一緒に戦ってくれたチームメンバーにリーダーとして感謝します。ありがとうございました。
更新履歴
10/25
- 誤字脱字を訂正しました
- DefuseBombの解説をメンバーに寄稿いただきました
Discussion