あうとぷっと

いんぷっとの整理とあうとぷっとの場

TsukuCTF 2023 Writeup by ykame

目次

CTF 概要

  • Name: TsukuCTF 2023
  • Start Time: 2023-12-09 12:20 (JST/UTC+0900)
  • End Time: 2023-12-10 18:00 (JST/UTC+0900)

回答した問題一覧

カテゴリ ポイント 問題名
Web 100 basic
misc 201 what_os
osint 100 location_for_what
osint 232 tsukushi_estate
osint 281 travel_with_tsukushi
osint 321 kiZOU
osint 469 river
osint 498 hunter
osint 499 udon_2023

Writeup

[Web] 100pts basic

問題文
保護されていない通信ではパスワードはまる見えダゾ!
e.g. パスワードが Passw0rd! の場合、フラグは TsukuCTF23{Passw0rd!} となります。


添付されたbasic.pcapngとタイトルを見て、Basic認証?と思ったので、雑に以下のコマンドで。

$ strings basic.pcapng -n 20 | grep Basic
WWW-Authenticate: Basic realm="Login Required"
Authorization: Basic YWRtaW46MjkyOWIwdTQ=
Authorization: Basic YWRtaW46MjkyOWIwdTQ=

$ echo -e "YWRtaW46MjkyOWIwdTQ=" | base64 -d
admin:2929b0u4

この結果から、パスワードをフラグに入れて TsukuCTF23{2929b0u4}

Follow TCP Streamもしてみたけど、問題なさそうなのでSubmitして正解。

[misc] 201pts what_os

問題文
とある研究所から、昔にシェル操作を行った紙が送られてきた来たんだが、 なんのOSでシェルを操作しているか気になってな。 バージョンの情報などは必要ないから、OSの名前だけを教えてくれないか?
にしても、データとかではなく紙で送られて来たんだ。一体何年前のOSなんだ。。。
送られてきた紙をダウンロードして確認してほしい。


添付されたtty.txtを読んで、最初にcalコマンドに目が行く。

AIXあたりかな?なんて思いながら、ファイルの配置を見ていって、以下の点にあたりをつける。

# chdir sys
# ls -al
total  325
 68 sdrwr-  2 root    160 Jan  1 00:00:00 .
 41 sdrwr-  9 root    100 Jan  1 00:00:00 ..
 70 sxrwr-  1 root   2192 Jan  1 00:00:00 a.out
 71 l-rwr-  1 root  16448 Jan  1 00:00:00 core
 72 s-rwr-  1 sys    1928 Jan  1 00:00:00 maki.s
 69 lxrwrw  1 root  12636 Jan  1 00:00:00 u0.s
 81 lxrwrw  1 root  18901 Jan  1 00:00:00 u1.s
 80 lxrwrw  1 root  19053 Jan  1 00:00:00 u2.s
 79 lxrwrw  1 root   7037 Jan  1 00:00:00 u3.s
 78 lxrwrw  1 root  13240 Jan  1 00:00:00 u4.s

えーっと、ここのパスは… 例えばmaki.s なら、 /usr/sys/maki.s かな?
と、おもむろに検索すると、1st Edition UNIXのページがヒット。

github.com

え、答えるのOSの名前だよね?これで答えなの?いやいやそんなまさか…
と思いつつ、フラグを入れてみて正解。 TsukuCTF23{UNIX}

[osint] 100pts location_for_what

問題文
とある場所を友達と探索していると、「ここ、何かの映画の聖地だった気がするけど、名前忘れちゃった......」とのこと。
シュッと特定して教えてあげよう!
Flagの形式は TsukuCTF23{映画のタイトル} です。


添付されたlocation_for_what.pngを見た瞬間、言の葉の庭だろうと。

本当に他のタイトルで同じような聖地が無いのかと問われたら不安ではあるけど、
自信満々にノータイムでSubmitして正解。 TsukuCTF23{言の葉の庭}
もはや、Writeupとして成立していない解法。

[osint] 232pts tsukushi_estate

問題文
つくし君が写真に写っているビルにオフィスを構えたいらしいのだけど、築年数が少し心配......
つくし君の代わりに調査してください!
Flagの形式は TsukuCTF23{築年_月} です。
例えば、2022年3月に出来たビルであれば、 TsukuCTF23{2022_03} になります。


添付されたtsukushi_estate.pngを見て、初めにやったことは 写真内の文字をそのまま検索。

Googleで 「"入店者募集" "つくし不動産" "0598-52-2260"」と検索
そして、以下が検索結果画面。

明らかに添付された画像と同じ看板が見つかった。
看板左下の柱の様子や、看板下のタイルの模様も一致するので、場所も同じだろうことが予想できる。

あとは、このビルのホームページから建築年月を調べればいいだけ。

https://www.athome.co.jp/rent_office/6978084503/

築年月は、「1983年3月」なので、答えはフラグ形式に合わせて、 TsukuCTF23{1983_03} で正解。

[osint] 281pts travel_with_tsukushi

問題文
旅が好きなつくしくんは、空港の写真からそれがどこの空港かすぐにわかります。
つくしくんからの挑戦状!
これがどこの空港かわかるかな?
Flagフォーマットは TsukuCTF23{空港の3レターコード(IATA)} です。


添付されたairport.pngをそのままGoogle画像検索にぶっこみます。

出てきた1つ目の検索結果に、同じ建物が写った写真がヒットします。

4travel.jp

https://cdn.4travel.jp/img/tcs/t/pict/src/48/81/45/src_48814567.jpg?1495956243

クアラルンプールに寄った時の画像であることが読み取れるため、 クアラルンプール国際空港 であると予想がつく。
記事文末のスケジュールにも、クアラルンプールから成田へMH70で移動したと記載されているが、空港名が明記されていないため念のため再確認する。

Googleで 「クアラルンプール 成田 MH70」と検索。

すると、スケジュールと同じ移動経路と時間でKULからNRTに掛けてフライトする予定であることが分かる。
裏が取れたので、クアラルンプール国際空港であるKULをSubmitして正解。 TsukuCTF23{KUL}

[osint] 321pts kiZOU

問題文
ここは日本で一番のリゾート地!少し歩くと目の前に素敵な像が見えたから写真を撮ったつもりだったんだけど、見返したら端っこしか写ってない!困ったなぁ、この像についてもっと知りたかったんだけどなぁ。僕の代わりにこの像について調べてくれないか?
フラグ形式は TsukuCTF23{像を寄贈した人物の名前} です。


添付されたimage.jpgを見ると、移されたauショップは、au Style NAHA店であることが分かる。

が、ここからすぐに手前の像が検索結果に出てきてくれない。
- au style NAHA 像 - パレットくもじ 像 - 那覇市久茂地 像

ここで、問題にもある「寄贈」という言葉を加えて検索してみると、すんなり該当の像に辿り着いた。 - 那覇市久茂地 像 寄贈

見つけたブログには、シーサー像を掲載すると共に、手前にシーサー像の説明が書かれている画像が掛かれていました。

https://stat.ameba.jp/user_images/20201114/19/ackn62/b9/76/j/o2272170414851022247.jpg?caw=800

この説明書きの中に書いてある通り、上原清善氏から寄贈されたと書かれているため、正解は、 TsukuCTF23{上原清善}

[osint] 469pts river

問題文
弟のたくしから、「ボールが川で流されちゃった」と写真と共に、連絡がきた。
この場所はどこだ?
Flagフォーマットは TsukuCTF23{緯度_経度} です。
端数は少数第5位を切り捨てて小数点以下第4位の精度で回答してください。


添付されたimage.pngを見ると、読み取れるのは以下のポイント。 - 5~10mくらいの幅の川 - 川の周りの手すりは黒というか茶色系 - newgin社の専用駐車場がある

他の看板も頑張ったら何かわかるかもしれないけど、手ぶれしていて読み取れそうにない。
newgin社に注目して調べ始める。

www.newgin.co.jp

ここまで見るも、株式会社ニューギンホールディングスや株式会社ニューギンの位置を調べても、該当する川は見つかりそうにない。
暫くこの辺りで方針を見失ってしまう。

暫くして、もうニューギンしか手掛かりないし、この看板があるってことは関連会社が絶対あるんだろ!しらみつぶしに見てやろう!
と思い、このWebサイトの会社地図を片っ端から開きまくる。

すると、株式会社ニューギン販売の一番下(ゲッソリ)にある鹿児島営業所の地図が近そうに見える。

ストリートビューで見ると、川の感じも看板も合っていることが確認できる。
あとは、この位置を特定するだけ! 正解は、 TsukuCTF23{31.5757_130.5533}

[osint] 498pts hunter

問題文
名前をメールで聞こうとしたところ、相手のGmailの一部が分からなくなってしまいました。
大変お忙しいところ恐縮ですが、暇なときに調査してください。
qeinijo#iby#@gmail.com
#が不明な部分です。
なお、外部サービスに短期間で多くのアクセスをしないようにしてください。


疲れ切りながら裏でぐるぐる回し続けた結果、小人さんが答えを教えてくれました。

#!/usr/bin/python3

from verify_email import verify_email
import sys
import time

def email_verifier(email):
    verify = verify_email(email)
    if verify == True:
        print(f'{email} is a valid!!!!!')
        sys.exit("*****{email}*****")
    time.sleep(10)

chars = ['a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z','0','1','2','3','4','5','6','7','8','9','.']
for i in chars:
    for j in chars:
        test_mail = 'qeinijo' + i + 'iby' + j + '@gmail.com'
        email_verifier(test_mail)

その結果、答えのメールアドレスは、「qeinijo.iby8@gmail.com」であることがわかりました。

はい、答えsubmitして正解、、と思いましたが不正解。

なんか、そういえばDiscordで答えの形式は何だ?それも含めて問題なのか?みたいなやり取りがあったような。。

というわけで、みんな大好きEPIEOSにメールアドレスを投げてみたところ、名前にフラグがあったのでこちらが正解フラグ。 TsukuCTF23{GHun7_i5_u5efu1}

[osint] 499pts udon_2023

問題文
ここのうどん、麺だけじゃなく、鶏天も美味しい!!!
お店の場所を忘れたから、7文字のplus codeで教えて!!!
フラグフォーマットは、+を含めてTsukuCTF23{REDACTED+REDACTED}


回答者も少なかったけど、すぐに諦めてまた戻って解いて、を繰り返していたから総合的に時間はかかったものの、結構すぐ解けていたこの問題。
もっと早く気づいて色々試していれば良かったなぁ。

添付のudon_2023.jpgを見て、まずはGoogle画像検索に投げ込んでみます。

色々なうどんが出てきますが、最初に見た時点で「甚三 新橋2号店」の「鶏天ぶっかけ(冷)」に思考ロックが掛かります。
鶏天の数といい、ねぎの刻み具合と言いほぼ間違いないですね。

https://www.ubereats.com/jp-en/store/%E8%87%AA%E5%AE%B6%E8%A3%BD%E9%BA%BA%E8%82%89%E8%AE%83%E5%B2%90-%E7%94%9A%E4%B8%89-%E6%96%B0%E6%A9%8B2%E5%8F%B7%E5%BA%97/l96QszUmU7GyPz9jgOVZRw/00bbdbcf-fe16-4e62-97f8-e6cd19f73601/0379a62a-1156-4ddb-a09a-7e1dc45d5dfb/d46dbd84-f4fd-51e9-b5ef-997c9941e229

はいはい、瞬殺瞬殺。。。

とはさすがに行きませんでした。

が、どう考えてもこの店で間違いない。もう直感的にそう思えてしまって頭が離れない!

食べログで該当店の写真を洗いまくります。

tabelog.com

もうねぎのケースとか完全一致で間違いだという方が信じられない!!

器も問題の写真と完全一致してるんだが!?これで店違うとかもう何かがおかしい。

ただ、、棚の上に置いてあって、うどんを食べる台には置いてないんですよね、違和感が・・・

ここで、2号店があるということは本店があるのでは?ということに気づいて、系列店を調べ始めることに。

まずは、2号店のページを確認。

udon-jinza.com

すると、下の方に東京都内の一覧として以下の並びが目につきます。

あ、結構系列店あるのね。でもこの4店舗調べたら終わりでは?
はい、ここからは総当たりでー

  • 甚三 神田店
  • 新橋 甚三
  • 甚三 大門店
  • 甚三 新橋2号店 ・・・

ねぎのケースとうどんを同じ高さにおける店舗ないんだがー?

ここで暫く撃沈。

しばらくして、甚三のトップページからアクセスしてみると、高田馬場店が新しくオープンしていることに気づく。

udon-jinza.com

なんでさっきの一覧更新されてなかったの?調査に手を抜いてしまって後悔

高田馬場店の写真を見ると、まだ内観の数は少ないけど、ねぎのケースはテーブルと同じ高さに置かれている!これだー

というわけでようやく正解に辿り着く。答えは TsukuCTF23{PP63+G6}

参加した感想

前日にインフルエンザに罹患したこともあり意識朦朧の中で競技開始した時点で、
タイミングとしては最悪だった気がする。
もっとしっかり時間かけて集中して解きたかった!

問題を見るたびに、あっ、あのCTFで出たアレに似てるなーなんて思い出しながら解いてました。
もっと他の問題にも関与して解いてはいたけど、Submitした問題のみWriteupを残しています。

回答の方向性にツッコミを入れる問題もあったけど、こういう角度の問題を作ろうとして入れたんだろうなーという解釈を楽しみながら回答できて良かったです。
やっぱりOSINTの問題は作るだけじゃなくて解いてこそ楽しいんだよなぁ

TsukuCTFの運営の皆様、お疲れ様でした!ありがとうございました。