Skip to content

Instantly share code, notes, and snippets.

@syakep
Last active September 13, 2021 00:58
Show Gist options
  • Save syakep/b50dd18aa2af112683fcfc6928332a3b to your computer and use it in GitHub Desktop.
Save syakep/b50dd18aa2af112683fcfc6928332a3b to your computer and use it in GitHub Desktop.

TsukuCTF 2021 writeup

TsukuCTF にひとりチーム(syake)として参加し、16位でした。
他の方のwriteupを読むまで、Googleレンズというものを知りませんでした………。OSINT初心者のwriteupです。

Tsukushi

[Tsukushi 100] Welcome (154 Solves)

TsukuCTF公式Twitterのアカウント名がそのままFlagとなっている

TsukuCTF{2021}

Web

[Web 100] logonly (31 Solves)

配布されたログを見る

XXX.XXX.XXX.XXX - - [11/Sep/2021 12:00:00] "POST / HTTP/1.1" 401 -
XXX.XXX.XXX.XXX - - [11/Sep/2021 12:00:00] "POST / HTTP/1.1" 401 -
XXX.XXX.XXX.XXX - - [11/Sep/2021 12:00:00] "POST / HTTP/1.1" 401 -
XXX.XXX.XXX.XXX - - [11/Sep/2021 12:00:00] "POST / HTTP/1.1" 401 -

と続いたのち、214154行目に

XXX.XXX.XXX.XXX - - [11/Sep/2021 12:00:01] "POST / HTTP/1.1" 200 -

とある。また、問題文中に

Kali Linuxの中のツールとファイルを使ったら

とあるので、rockyou.txtだろうと考える。rockyou.txtの214154行目がFlag

TsukuCTF{qwertyuiop[]\\}

OSINT

[OSINT 100] ramen (93 Solves)

ラーメンの画像が渡される。見た感じ、ポタージュっぽいスープと、ヤングコーンが乗っているのが特徴。
Googleで ラーメン ヤングコーン ポタージュで検索すると銀座 篝というお店の似たラーメンの画像が結構出てくる。このお店ぽい。このお店のInstagram IDがFlag

TsukuCTF{kagari_honten}

[OSINT 100] shop (83 Solves)

11秒の動画が渡される。0-3秒くらいはイオンモールの外観で、9-11秒くらいは車道。
11秒ごろに走ってきた車のナンバープレートを見ると「滋賀」と書いてある。たしかに背景は琵琶湖かもしれない。
滋賀のイオンモールを探すと、イオンモール草津がヒットする。ストリートビューでイオンモール草津の外観を確認すると、確かに0-3秒の映像と一致する。

TsukuCTF{イオンモール草津}

[OSINT 100] train (84 Solves)

駅のホームっぽい画像が渡される。6番線が京浜東北線で5番線が山手線。
京浜東北線と山手線の並走区間で、少なくとも3路線は通っている駅だろう、と絞り込める。
あとはJR東日本のサイトで駅構内図が見れるので、確定できる。
新橋駅の駅構内図を見ると6番線が京浜東北線(東京上野大宮方面)、5番線が山手線(東京上野池袋方面)、そして北改札方面の張り紙があることから一致する。

TsukuCTF{Shimbashi}

[OSINT 100] YUUGEN (47 Solves)

動画が渡される。「無限」と書いてあるSLで、側面には「58654」と書いてある。
58654で検索すると、国鉄8620形蒸気機関車58654号機がヒットする。九州っぽい。
九州 無限 SLで検索すると、SL鬼滅の刃というコラボイベント列車のようだ。鹿児島本線の、熊本-久留米-鳥栖-博多の経路で走行したらしい。
10-14秒くらいの動画を見ると、上に高架があるっぽい。これは新幹線の高架?
googleマップで鹿児島本線と九州新幹線の並走区間を調べると、博多-竹下間のようだ。
ストリートビューで竹下周辺に降り立つと、確かに特徴的な黄色い四角めの建物が見える。

TsukuCTF{Takeshita}

[OSINT 100] Beach (80 Solves)

2枚の画像が渡される。2枚目のCのような形状のオブジェが特徴的だ。
海辺 C オブジェで検索すると茅ヶ崎サザンビーチが出てくる。

TsukuCTF{Chigasaki}

[OSINT 100] tram (43 Solves)

画像には「ČSOB」と書いてある建物が光っている。調べてみるとチェコスロバキア貿易銀行というらしい。
また、路面電車は少し丸みをおびたフォルムで、白と赤い帯である。プラハ市電だ。
プラハ市電5系統のルート中の駅かつ交差点の角に存在するチェコスロバキア貿易銀行を1つずつ画像検索で見ていく。
すると、Lidická 66/43, 15000 Praha, SmíchovにあるČSOBに絞れる。最寄駅はAnděl

TsukuCTF{Anděl}

[OSINT 100] Tsukushi_no_email1 (44 Solves)

ルールページにお問い合わせのメールアドレスが載っている。Gmailのメールボックスを開いて入力すると、アイコンが表示される。アイコンにFlagが書いてある

TsukuCTF{Google_kingdom}

[OSINT 100] Tsukushi_no_email2 (40 Solves)

Tsukushi_no_email1で使用したメールアドレスをGoogle カレンダーに追加すると予定が見える。Flagという予定が入っている

TsukuCTF{Horsetail_is_delicious}

[OSINT 100] cafe (37 Solves)

該当アカウントのメディア欄をざーーっと見ていくとキャストさんとのツーショットがある。
キャストさんのポケットには「No.1メイドカフェグループ」と書いてあるので、 Googleにて No.1 メイドカフェグループで検索。めいどりーみんであることを特定。
店舗情報から各店舗の背景を見ると、水色の空が壁紙となっているのは秋葉原中央通り店である。
よって https://maidreamin.com/shop/detail.html?id=5 が答えである

TsukuCTF{https://maidreamin.com/shop/detail.html?id=5}

[OSINT 100] train2 (60 Solves)

渡された画像の奥に踏切が見える。小さくて文字は読みづらいが、「出町柳9号」の踏切っぽい。
念のため出町柳 9号 踏切で検索すると、該当踏切の別ポジションから撮ったであろう画像が出てくる。また、その場所のマップも出てくる。近くに元田中駅があることがわかる。

TsukuCTF{元田中}

[OSINT 100] fishing (77 Solves)

渡された画像にはソーシャルディスタンス呼びかけの赤い旗がある。2m離れてねってことっぽい。
Twitterでソーシャルディスタンス 釣り 2mで検索。すると似たような場所のツイートが出てくる。

該当ツイートには若洲海釣り公園と書いているが、正式名称は若洲海浜公園(の中の、海釣施設?)っぽい。ストリートビューで降り立つと、配布された画像と一致する。特徴的な時計も橋もある。

TsukuCTF{若洲海浜公園}

[OSINT 100] dam (55 Solves)

奥に特徴的な橋が写っている。貯水池 赤い橋で検索すると、似た橋の画像が出てくる
河内貯水池という貯水池にかかる橋のようだ。

TsukuCTF{河内貯水池}

[OSINT 323] OBOG (21 Solves)

SecHack365 非公式とかでググるとそれっぽいページが出てくる
DevToolsを開き、†締切駆動コース†といういかにも問題文と一致してそうな状況のページを開くと、consoleにPlease decode! → VHN1a3VDVEZ7aHR0cHM6Ly9zZWNoYWNrMzY1Lm5pY3QuZ28uanB9と出力されている。
Base64デコードするとFlagが出てくる

TsukuCTF{https://sechack365.nict.go.jp}

[OSINT 340] InterPlanetary Protocol (20 Solves)

3つの文字列ともbafybeiで始まっている。なんだろうと思いつつ、bafybeiで検索するとIPFSについてのスライドが出てくる。
試しにブラウザから
https://ipfs.io/ipfs/bafybeieozcigchzmmpjzlct5eti4xhqexjnolpuehsnk2ckeaiqfqfqilu
にアクセスすると、TsukuCTF{IPFS_と出てくる。引き続き、
https://ipfs.io/ipfs/bafybeifvtvmitvebs6ktbaqqhort2h76xfen4zj65bujq7xos2zzxdvwga
にアクセスすると、_is_the_
https://ipfs.io/ipfs/bafybeidtzxolknnds6k2ny6s6rgvbm7t7gopwyfgvyblfjdw6m6og2vsxm
にアクセスすると、future}が出てくる。

TsukuCTF{IPFS__is_the_future}

[OSINT 372] uiui (18 Solves)

配布されたzipにはパスワードがかかっている。
問題文を読むと.

解析にあたってマズイことをしてしまいました。彼は感染したことをほかの人に知られたくないようです。バレますかね?

と書いてある。おそらくVirusTotalにでも上げたのだろう、と予想する。
であればパスワードは気にしなくてよいのだろうと考え、とりあえずfile hashでも取ってみる。

$ shasum -a 256 Virus.zip
8fa168f38e54fb0f63e6674a4f463ef3a0971f71546e6f4ed1b69c121d1de1f3  Virus.zip

これでVirusTotalで検索すると、ヒットする。 RELATIONSタブからBundled Fileへと飛べる。ここにFlagが書いてある

TsukuCTF{Careless_uploading_is_dangerous}

Misc

[Misc 100] TORItsukushi (90 Solves)

エディタの検索置換機能を使って何度もTSUKUSHIを消すだけ。
一瞬スクリプト書いてもいいかなと思ったが、エディタの検索置換機能を連打するほうが早い気がした
ありがとうVSCode

TsukuCTF{Would_you_like_some_fresh-baked_Tsukushi?}

[Misc 100] Customization (98 Solves)

スプレッドシート開く。真ん中のセルが空白のように見える(が値は入っている)ので、それをみるだけ

TsukuCTF{yak1n1ku_ta6eta1}

[Misc 244] discriminate (25 Solves)

まずは元となったポスターの文章を見つける。
せっかくレシピを提示してくれているので、どのあたりで区切るといい感じに正解っぽいのが出てくるか、試行してみる。

from transformers import T5Tokenizer, AutoModelForCausalLM

tokenizer = T5Tokenizer.from_pretrained("rinna/japanese-gpt2-medium")
model = AutoModelForCausalLM.from_pretrained("rinna/japanese-gpt2-medium")

input = tokenizer.encode("握るだけで解錠できるスマートドアハンドルを開発した。静脈認証が外側のドアハンドルに埋め込まれている。静脈認証は、身体の内部にある静脈パターンを",return_tensors="pt")
output = model.generate(input, do_sample=False, max_length=158)
print(tokenizer.batch_decode(output))

パターンを、までで区切るとそれっぽいのが出てくるようになった

['握るだけで解錠できるスマートドアハンドルを開発した。静脈認証が外側のドアハンドルに埋め込まれている。静脈認証は、身体の内部にある静脈パターンを</s> 読み取り、そのパターンに合致するドアハンドルを自動的に開く。 スマートドアハンドルは、ドアハンドルの内側に内蔵されたセンサーが、ドアハンドルの開閉を検知して、自動的に開閉する。 スマートドアハンドルは、ドアハンドルの内側に内蔵されたセンサーが、ドアハンドルの開閉を検知して、自動的に開閉する。 スマートドアハンドルは、ドアハンドルの内側に内蔵されたセンサーが、ドアハンドルの開閉を検知して、自動的に開閉する。 スマートドアハンドルは、ドアハンドルの内側に内蔵されたセンサーが、ドアハンドルの開閉を検知して、自動的に']
TsukuCTF{パターンを}

Hardware

[Hardware 100] CAD (82 Solves)

Macならダブルクリックするだけで開ける。ドラッグしてぐるぐる回すと背面に文字が彫ってある

TsukuCTF{ILIK3B3ar}

[Hardware 100] Ltika (49 Solves)

配布されたソースコードを見ると、

void blinking(){
  digitalWrite(LED_BUILTIN, HIGH);   
  delay(500);
  digitalWrite(LED_BUILTIN, LOW);    // turn the LED off by making the voltage LOW
  delay(300);                       // wait for a second  
}
void lit(){
  digitalWrite(LED_BUILTIN, HIGH);   // turn the LED on (HIGH is the voltage level)
  delay(2000);                       // wait for a second
  digitalWrite(LED_BUILTIN, LOW);    // turn the LED off by making the voltage LOW
  delay(300);                       // wait for a second  
}

上記からblinkingが短点、litが長点のように振る舞うことがわかる。
loop内は明らかに欧文モールスなので、あとは普通に変換する。スクリプトを書いてもいい気がしたが、短いので目視で変換した。

TsukuCTF{ENJ0YHARDWARE!}

[Hardware 152] PCB (29 Solves)

手持ちのgerbviewで見るだけ。
あとは星座 一覧とかでググって似た形をしている星座を見つける。白鳥座らしい。

TsukuCTF{CYGNUS}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment