TsukuCTF2023 writeup

初めてOSINT系のCTFでました。しかも、大学院の後輩と出まして、24位と満足の結果でした! とても楽しく解けたので余韻に浸りながら解いた問題をまとめていきます。

Web

basic

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

Passwords are fully visible in unencrypted connections! e.g. If the password is Passw0rd!, the flag is TsukuCTF23{Passw0rd!}.

basicと書かれているので、basic認証だろうと予想します。 httpでフィルターかけてみると、以下のパケットが見れる。 一番下のパケットが怪しいので見てみると、以下の情報が見れる。

TsukuCTF23{2929b0u4}

OSINT

CtrlAltPrtSc 427pt

仕事中にCtrl + Alt + PrtScでウィンドウのスクリーンショットを撮ったよ。

つくし君がサボって使用していたサービスの名前を答えよ。 フラグはTsukuCTF23{サービスの名前}の形式です。

Tsukushi-kun took a screenshot of a window at work using Ctrl + Alt + PrtSc. Please give the name of the service that Tsukushi-kun used when he was slacking off from work. Flag format is TsukuCTF23{Service name}

左上をよく見てみると、YouTubeの文字がありますね。(よく研究してるときにやる手法だからすぐわかったのは秘密)

TsukuCTF23{YouTube}

perfume 198pt

とある施設でいろいろな香水を見かけたが、施設の場所が思い出せない。 この施設の場所を調べ、教えてほしい。

ラグはTsukuCTF23{緯度_経度}であり、小数点第三桁まで有効である。

I saw various perfumes at one facility, but I cannot remember where the facility is located. Please find out where this facility is located and tell me. Flag format is TsukuCTF23{latitude_longitude} And is valid to the third decimal place.

複数の香水が置いてあるのでなんとなく博物館的な場所かなと予想する。 まずが、Google Lensを見てみると、とある人の旅日記に似た写真が載っており場所は大分香りの博物館だった。

後はそれっぽいところをGuess

TsukuCTF23{33.312_131.488}

castle 100pt

この前、お城に行ってこの写真を取ってきたんだ! どこにあるかわかるかい?

ラグのフォーマットは、TsukuCTF23{緯度_軽度} です。 小数点は第三桁まで有効とします。

I took this picture in a castle last time. Do you know where it is?

The flag format is TsukuCTF23{latitude_longitude}, and is valid to the third decimal place.

見たことある気もするけど、Google Lens先生に聞いたらわかりました。

場所は太陽公園で、写真と同じ場所を探せばOK

TsukuCTF23{34.886_134.630}

mab 228pt

mab.main.jpが使用しているレンタルサーバサービスを特定し、そのWebサイトのドメイン名を答えてください。Flagフォーマットは TsukuCTF23{ドメイン名}です。 Please identify the rental server service used by mab.main.jp and answer me with the domain name of the website. The flag format is TsukuCTF23{domain_name}.

Whoisで検索をすると、

[Name Server]                   sv.madame.jp
[Name Server]                   dns2.lolipop.jp

と出てくる。dns2.lolipop.jpの方が多そうなので、そっちをGuess。 ちなみに、main.jpはlolipop.jpらしい。勉強になった。

TsukuCTF23{lolipop.jp}

green_bridge 180pt

この写真が撮影されたのはどこですか...? Flagフォーマットは TsukuCTF23{緯度_経度} です。 端数は少数第4位を四捨五入して小数点以下第3位の精度で回答してください。

Where is the picture taken? The flag format is TsukuCTF23{latitude_longitude}. Round fractions to the nearest fourth decimal place and answer the third decimal place.

Google Lensで調べると、サイクリング日記を書いている人の写真が出てきた。 この場所はもみじ谷大吊橋というらしく恋人の聖地らしい。

そんな情報はどうでも良くて、今回聞かれているのは撮影者の位置なので、Google Mapから予測をしてGuess。

TsukuCTF23{36.956_139.880}

kiZOU 321pt

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

This is the best resort in Japan! I took a picture when I saw the nice statue in front of me. However, I noticed only the edge is in the picture. So, could you please investigate for the statue instead of me. The flag format is TsukuCTF23{the person name who donated the statue}.

20231211023633

まず、右側のガラスを見ると、au style NAHAと書かれているため、場所を調べる。 そうすると、デパートリウボウとパレット久茂地(くもじ)がでてきた。

多分、くもじと久茂地が出てきたから古い情報もあるだろう読みでシーザーの情報を調べると、島常賀さんという人間国宝の話が出てきた。 寄贈の形を作ったのが島常賀さんらしい。後は、島常賀 パレット久茂地 寄贈と調べるとTwitterXで上原清善氏が寄贈したという情報が出てきた。

高専カンファ沖縄でこのデパートでバス降りたの思い出しました。なつかしいな。

TsukuCTF23{上原清善}

big_statue 354pt

大きなドリアンだ!どこにあるんだろう?? フラグの形式は TsukuCTF23{緯度_経度} です。例えば、この像が東京の渋谷駅にある場合、フラグは TsukuCTF23{35.6580_139.7016} となります。

What a big durian! Where is this?? The flag format is TsukuCTF23{latitude_longitude}. If this statue is at Shibuya station in Tokyo, the flag would be TsukuCTF23{35.6580_139.7016}.

Google Lens で似たような場所で動画を取っている投稿をFaceBookで見つけた。

その人の投稿を見ると、Lexus Durian King - Upper Serangoonで実際に見てみると全く同じだった。 後は、写真と地点を見つけてGuess

TsukuCTF23{1.3623_103.8873}

travel_with_tsukushi 281pt

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

Tsukushi, who loves to travel, can easily tell the airport where it is taken in. This is a challenge from him. Do you know which airport this is? The flag format is TsukuCTF23{3 letter code of the airport (IATA)}.\ 20231211023619

まず、3つの飛行機の会社を調べると、エア・アラビア、バティック・エア、マレーシア航空だった。 後は、この3つが止まる飛行場を探してあげたらOK。

今回はクアランプール国際空港 TsukuCTF23{KUL}

free_rider 463

https://www.fnn.jp/articles/-/608001 私はこのユーチューバーが本当に許せません! この動画を見たいので、元のYouTubeのURLを教えてください。 また、一番上の画像(「非難が殺到」を含む)の再生位置で指定してください。 フラグフォーマットは、TsukuCTF23{https://www.youtube.com/watch?v=REDACTED&t=REDACTEDs}

https://www.fnn.jp/articles/-/608001 I really can't stand this YouTuber! I would like to watch this video, so please tell me the original YouTube URL. Also, please specify the playback position of the top image (including 「非難が殺到」). Flag format is TsukuCTF23{https://www.youtube.com/watch?v=REDACTED&t=REDACTEDs}

何かYouTubeで見た記憶があります。 まずは、この外国人が誰かを探すため調べると、Fidias Panayiotouであることがわかりました。

この人のチャンネルに行ったが、残念ながらYouTubeポリシーに違反したため削除されてしまったので、Archive.todayでFidiasのチャンネルに飛び、該当動画を開くと動画IDがDg_TKW3sS1Uであることが分かった。 後は適当に無断転載している動画から時間を探せばOK

TsukuCTF23{https://www.youtube.com/watch?v=Dg_TKW3sS1U&t=175s}

fiction 491pt

「座標を教えてくれ」 フラグフォーマットは、TsukuCTF23{緯度_経度}です。 小数点以下5位を切り捨てて、小数点以下4桁で答えてください。

"Give me the coordinates." The flag format is TsukuCTF23{latitude_longitude}. Round down to 5 decimal places and submit your answer to 4 decimal places.

20231211023736

どうみてもValorantのサンセットのマップです。 Valorantを知らなくても画像検索である程度は出てくると思います。 これはTipsですが、Valorantは実在する場所を参考にしてマップを作成しています。今回のサンセットはアメリカのロサンゼルスになります。 また、ゲーム内でマップが表示されているときの左側に座標が載っています。 今回の場合、サンセットは34° 2' C' N, 118° 12' YT Wとなります。 また、このサイトによると、Valorantは一部を文字として表します。 詳しくはサイトを見てください。 今回C->2 YT -> 16となるため、34°2'2" N 118°12'16" Wとなります。 後は変換して終わり。

TsukuCTF23{34.0338_-118.2044}

laser 433pt

光源の座標を正確に教えてください。 フラグフォーマットは、TsukuCTF23{緯度_経度}です。 小数点以下5位を切り捨てて、小数点以下4桁で答えてください。

Please tell me the exact coordinates of the light source. The flag format is TsukuCTF23{latitude_longitude}. Round down to 5 decimal places and submit your answer to 4 decimal places.

20231211031237

前に横浜の乃木坂ライブで似たようなニュースがあったことを思い出したので、都会 緑色 レーザーと調べたらそれらしきニュースが。 御堂筋イルミネーションでランドマークレーザーを打ち上げているとのこと。 後は、御堂筋イルミネーションの画像を探して似た場所を探せばOK TsukuCTF23{34.7015_135.4991}

river 469pt

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

I received a call "My ball got washed away in the river" with a picture from my younger brother, Takushi Where is this place? Flag format is TsukuCTF23{latitude_longitude}. Please answer to the fourth decimal place with fractions rounded down to the fifth decimal place. 左側を見るとnewqinと見えてnewginの専用駐車場が見える。

パチンコの直営店が出てきて探すのに戸惑ったが、会社概要 | newgin ニューギンで一覧を取得できる。

風景的に都会にあるとは考えにくいという考察のもと探していくと、(株)ニューギン 鹿児島営業所の近くに似ている場所があった。

後は、実際の場所から少し離れたところでポチポチしてたらうまくいった

TsukuCTF23{31.5757_130.5533}

RegexCrossword 484pt

20231211023607

クロスワードなんぞ解きたくない! ということで、解くのは諦め検索するが大学で出されたような情報しか出てこない。そんな時、Twitterで検索したら誰かがツイートしてるんじゃね?と思って調べたらビンゴ

このツイートを見ると、見覚えのあるクロスワードが! 後は、会津大学 正規表現 ナプキンと調べたら解いている天才がおった。 これを作った会社は株式会社Eyes, JAPANで会津大学ベンチャー企業らしい。

TsukuCTF23{965-0872}

sunset 499pt

TsukuCTF運営の1人であるshioが、今年に開催されたあるイベントが終わった後に夕日を撮影した。 この写真が撮影された日時を求めよ。 フラグフォーマットはTsukuCTF23{YYYY/MM/DD_hh:mm}である。 例えば、TsukuCTF2023の開始日時はTsukuCTF23{2023/12/09_12:20} なお、誤差は1分まで許容され、日本標準時を用いる。

shio, one of the TsukuCTF admins, took a picture of the sunset after an event held this year. I need you to find the date and time this photo was taken. The flag format is TsukuCTF23{YYYY/MM/DD_hh:mm}. For example, the start date and time of TsukuCTF2023 is TsukuCTF23{2023/12/09_12:20}. Note that an error of up to 1 minute is allowed and the answer is based on Japan Standard Time. 20231211023722

今回の写真を見ると、奥に陸地が見れることから日本海だと考察する。また、天気が曇りであることも覚えておく。

次にどこ行ったかを確認するために、運営shioさんのTwitterを探す。

https://twitter.com/shio_sa1t

どうやら、shioさんはセキュリティ・ミニキャンプ in 新潟 2023に講師として参加していることがわかる。

Google Mapでミニキャンプ会場を見てみると、写真と似たような場所があり映っている場所は日和山浜海水浴場であると予想する。

今回新潟にいたのは9/9 or 9/10のどちらかのため、これを絞り込む必要がある。 気象庁の過去データから9日の1時間ごとの値10日の1時間ごとの値を、日の入り情報を見るために、日の出日の入りカレンダー辺りを参考に見てみる。

すると、9/10が曇りであることからこの写真は9月10日に投稿されたと考えられる。

日の入りは18:01なので、一度guessするがダメだった。日の入りの定義を見てみると上辺が水平線に触れたらとのことなので18:01より前だと予想する。 後は勘でやってみよう。18:53でやってもダメ。手を震わせながらサマーウォーズみたいに18:55でやったら無事通りました。 俺の勝ちや!!!!

TsukuCTF23{2023/09/10_17:55}

hunter 498pt

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

I tried to email you to ask for the name, but I lost track of part of the person's Gmail. I apologize for the inconvenience, but please investigate in your space time. qeinijo#iby#@gmail.com #is the part I don't understand. Please avoid accessing many external services in a short period of time."

qeinijo#iby#@gmail.comの#に関して、1文字しか入らないので総当たりでパターンは作れる。 しかし、その後どうしようかと迷っていたら、こんな記事Twitterで見つけた。 これらの情報を元にプログラムを作成した。

import subprocess
import time
from itertools import product

def generate_mail(base_string, replacement_chars):
    replace_positions = [pos for pos, char in enumerate(base_string) if char == '#']
    combinations = product(replacement_chars, repeat=len(replace_positions))
    results = []
    for comb in combinations:
        temp_string = list(base_string)
        for pos, char in zip(replace_positions, comb):
            temp_string[pos] = char
        results.append("".join(temp_string))
    return results

def execute_curl_commands(emails):
    with open('flag.txt', 'w') as file:
       # ここでcurlで処理を行う(10秒ごと)

email= "qeinijo#iby#"
char = '0123456789.'

mail= generate_mail(email, char)

execute_curl_commands(mail)

短期間で多くのアクセスをしないように、10秒に設定しておいた。また、短期間でアクセスが必要ない=アルファベットはないのでは?というメタ読みで数字ピリオドで回してみた。 するとqeinijo.iby8がset-cookieが書かれていたので、これがメールアドレスであることが判明した。後は、GHuntで確認をしてみると名前がフラグになっていた。

TsukuCTF23{GHun7_i5_u5efu1}

まとめ

初めてのOSINT参加でしたが、めちゃくちゃ楽しめました!運営の方々も優しく対応してくださったので楽しい1日を過ごせました。 CTF欲がめちゃくちゃ出てきたのでもっと精進します!! 後、BugHunterロール貰えて嬉しかったです。それでは!

2022年振り返りと2023年の抱負

あけましておめでとうございます。今年も宜しくお願いします。

昨年度の目標なんだったかなと思って調べたら

"風呂場で寝ない"でした。ちゃんと守りました!偉い!

ということで、振り返りです。

2022年振り返り

2022年は人との出会いの1年だったなと思います。 今年の抱負のほとんどは、出会った方々の影響な気がします。

実際、アコギをまた触り始めたり、韓国語を勉強始めたのは出会えた人たちのおかげです。 感謝しかない。

大学院入試受けたり(落ちましたが)、コロナかかったり、後輩とお酒飲んだりとハチャメチャな1年だったとも思います。 後は、自分から挑戦をあまりしなかった1年だなと思います。どこかで弱気になってたところがあるのが心残りです。

2023年の抱負

2023年は以下を抱負に頑張ります!

・韓国語で会話する ・TOEICの点数800点超える ・セキュリティの資格勉強 ・研究を進める ・イモータル行く ・人の前でアコギ弾き語りできるようにする ・触れたことのない分野に挑戦する ・韓国に旅行しに行って韓国の友達と韓国語で会話する

去年は、風呂で寝ないだけだったので、もっと多くの抱負を立てました! 抱負が豊富ってな...!!!!

今年は、色々なことに全力で挑戦してもっと前に進みたいと思います。

こんな僕ですが、今年もよろしくお願いします:) 이런 저지만 올해도 잘 부탁드립니다.:)

Let's make this new year a great one!!!!

離散数学 備忘録

グラフ理論

用語

頂点集合(vertex set)、ニ頂点を結ぶ辺集合(edge set)からなる構造のこと。 形式的には、グラフGは頂点集合V(G)、辺集合E(G)と表す。

例えば、以下のようなグラフGを考える。

f:id:potyakun:20220410035335p:plain
図1: グラフG
この場合、

V(G) = {A, B, C, D}
E(G) = {AD, BD, CD}

となる。

あるグラフGとその一つの頂点vに対して、vと辺で結ばられている頂点の集合のことをvの近傍(neighborhood)という。

vから出ている辺の数をvのGでの次数(degree)という。

握手補題

任意のグラフGで全頂点の次数の和はGの辺数の2倍である。

{\sum_{v\in V(G)} deg(G) = 2|E(G)|}

特殊グラフ

完全グラフ

V(G)が全て辺で結ばれているグラフを完全グラフ(complete graph)という。

頂点数がnの完全グラフを{K_n}と書く。

また、握手補題を用いると、以下の定理が導かれる。

{K_n}の辺の数は{\frac{n(n-1)}{2}}である。

{|E(K_n)| = \frac{n(n-1)}{2}}

2部グラフ

グラフGのV(G)を"A,B内に辺がない"を満たすA,Bへ分割できるとき、2部グラフ(bipartite graph)という。

A,Bに分割したとき、Aの全頂点がBの全頂点と結ばれているグラフを完全二部グラフ(complete bipartite graph)という。

Aの頂点数がr, Bの頂点数がsのときの完全二部グラフは{K_{r,s}}と書く。

二部グラフと歩道の関係について以下の定理が成り立つ。

二部グラフの閉じた歩道の長さは偶数である。 (続)

1年の振り返りと今年の目標

2021年もお世話になりました。 もう新年明けてから4日経ちましたが、気を引き締めるためにも書いておきます。

2021年の目標はツイートしていませんでしたが、こんなの見つけました。

昔の自分へ。今もダイヤ4だよ。

続きを読む

夏休みの思い出を。

こんにちは。ぽちゃまです。 編入試験もほぼ終わり、めちゃくちゃ堕落した生活を送っています。 さて、タイトルの通り、夏休みの思い出について書いてみようかなとおもいます。

続きを読む