[Team yuruint] TsukuCTF 2023 writeup
yuruint
2023年12月9日~10日に開催されたTsukuCTF 2023にTeam yuruintとして参加しました。結果は12469 ptsで7位でした。
問題とwriteup
以下、解けた問題のみ記載しています。
✅[rev] title_screen
Difficulty: medium
Solved by: Diffuse / ryo-a / kn1cht
父は昔プログラマーだったらしい、
しかし、当時開発したソフトのタイトルが思い出せない。
ソフトを起動すると画面にタイトルが表示されるらしいのだが...
残っている開発データからなんとか導き出そう!
※実行結果として予想される表示文字列(記号含む)をフラグとして解答してください。
They said Tsukushi's father was a programmer.
However, I forgot the title of the software which he developed.
If I remember correctly, the title is on the display when the software is started.
Could you please investigate from the remaining data?Unlock Hint for 0 points
キャラクターは8x8ピクセルを1ブロックとして並べられます。データはMapper0想定でCHR-ROMは8KBです。
main.asm
.setcpu "6502"
.autoimport on
PPU_ADDR1 = $0001
PPU_ADDR2 = $0002
PPU_STATUS = $2002
.segment "HEADER"
.byte $4E, $45, $53, $1A
.byte $02
.byte $01
.byte $01
.byte $00
.byte $00, $00, $00, $00
.byte $00, $00, $00, $00
.segment "STARTUP"
.proc Reset
sei
ldx #$ff
txs
clc
cld
lda #$00
sta $2000
sta $2001
sta $2005
sta $2006
lda $4015
and #%11111110
sta $4015
lda PPU_STATUS
lda #$00
sta $2000
sta $2001
lda #$00
ldx #$00
clear_memory:
sta $0000, X
sta $0100, X
sta $0200, X
sta $0300, X
sta $0400, X
sta $0500, X
sta $0600, X
sta $0700, X
inx
cpx #$00
bne clear_memory
lda #$20
sta $2006
lda #$00
sta $2006
lda #$00
ldx #$00
ldy #$04
clear_vram_loop:
sta $2007
inx
bne clear_vram_loop
dey
bne clear_vram_loop
lda #$3F
sta $2006
lda #$00
sta $2006
ldx #$00
ldy #$10
setpal:
lda palettes, x
sta $2007
inx
dey
bne setpal
lda #$20
sta $2006
lda #$00
sta $2006
ldy #0
jsr set_row
jmp mapping1
mapping1:
ldy #11
ldx #$00
lda #$8c
mapping1_y_loop:
jsr set_row
ldx #05
jsr set_col
ldx #$14
mapping1_x_loop:
sta $2007
dex
bne mapping1_x_loop
iny
cpy #16
bne mapping1_y_loop
mapping2:
ldy #13
jsr set_row
ldx #08
jsr set_col
ldx #00
ldy #14
mapping2_x_loop:
lda data, x
sta $2007
inx
dey
bne mapping2_x_loop
screenend:
lda #$00
sta $2005
sta $2005
lda #$08
sta $2000
lda #$1e
sta $2001
loop:
jmp loop
set_row:
pha
tya
lsr a
lsr a
lsr a
clc
adc #$20
sta PPU_ADDR1
tya
asl a
asl a
asl a
asl a
asl a
sta PPU_ADDR2
lda PPU_ADDR1
sta $2006
lda PPU_ADDR2
sta $2006
pla
rts
set_col:
pha
txa
adc PPU_ADDR2
sta PPU_ADDR2
lda PPU_ADDR1
sta $2006
lda PPU_ADDR2
sta $2006
pla
rts
.endproc
palettes:
.byte $01, $18, $39, $30
.byte $0f, $06, $16, $26
.byte $0f, $08, $18, $28
.byte $0f, $0a, $1a, $2a
data:
.byte $22, $a4, $39, $26, $39
.byte $a4, $55, $79, $bb, $4c
.byte $39, $c7, $a4, $d1, $8c
.segment "VECINFO"
.word $0000
.word Reset
.word $0000
.segment "CHARS"
.incbin "character.chr"
添付ファイルが3つ(character.bmp
, main.asm
, main.cfg
)与えられる。
BMP画像のスプライトから文字を切り出す問題であると理解した。
また、kn1chtからNES(ファミコン)関連だろうという指摘がある。kn1chtが所用で離席していたのでryo-aがChatGPTに投げて深掘りを試みる。
main.asm
をChatGPTに投げ、どこを読むべきか判断する。
これでスプライトを読み出す部分がわかった。
つまり、以下のhexがスプライト上の1文字ずつに対応しており、これを並べるとタイトルの文字が表示されるはずである。
$22, $a4, $39, $26, $39
$a4, $55, $79, $bb, $4c
$39, $c7, $a4, $d1, $8c
残念ながらryo-aはNESの全く知識が無く、その状態でバイナリをビルド・実行するより、人力で読むほうが圧倒的に早いと判断したため、1マスが8px x 8pxとなる16x16のグリッドと、その番号を図に書き込んだ。
これを読むと
TSUKU
Shi_Q
UeSt[謎の記号]
となるように思われたが
TsukuCTF23{TSUKUShi_QUeSt} →incorrect
ウーーン???
ここでDiffuseが「若干判別しづらいだけで大文字ではないのでは?」と指摘。何度か試行し、最終的に以下の素直な文字列がFLAGだった。
TsukuCTF23{Tsukushi_Quest}
✅[web] basic
Difficulty: easy
Solved by: kn1cht
保護されていない通信ではパスワードはまる見えダゾ!
e.g. パスワードが Passw0rd! の場合、フラグは TsukuCTF23{Passw0rd!} となります。"Passwords are fully visible in unencrypted connections!
e.g. If the password is Passw0rd!, the flag is TsukuCTF23{Passw0rd!}.
WireSharkのPCAPNGファイルが配布されており、問題文も考慮するとパケットキャプチャ結果から認証情報を取得する問題と考えられる。ファイルをWireSharkで開くと、それほど長くない通信ログが表示されるので、眺めているとBASIC認証を行った部分が見つかる。BASIC認証が平文でパスワードを送信してしまうことは某常設CTFでも扱われており、CTFプレイヤーなら知っている人が多いと思われる。該当パケットのリクエストヘッダに”Credentials: admin:2929b0u4”と書かれているのでこちらがFLAG。
TsukuCTF23{2929b0u4}
✅[web] EXECpy
Difficulty: hard
Solved by: blackwasan
RCEがめんどくさい?
データをexecに渡しといたからRCE2XSSしてね!AdminBot: http://118.27.109.12:31416/crawler
You think doing RCE is a hassle, right?
So, this server passes the data to the exec, please do RCE2XSS.AdminBot: http://118.27.109.12:31416/crawler
Unlock Hint for 0 points
wowwow
GETリクエストでcodeパラメータに与えたコードを、Flask上のexecメソッドで実行できるガバガバな環境がある。ただし、実行した結果を閲覧することはできない。
そしてAdminBotと称するクローラが別に立っており、Playwrightが裏で走っている。クローラにURLを与えると、それを読みに行くらしい。読みに行った際のレスポンスに応じて処理が変わり、サーババージョンを"Tsukushi/2.94"に偽装されていて、bodyに"🤪"が含まれていなければフラグを参照できる仕様。
問題サーバでは環境変数FLAGにフラグが存在しているようで、両者を組み合わせて良い感じに取得すれば良いらしいことまでは分かった。参加者の改変履歴の蓄積を防ぐため、サーバは10分ごとにリセットされる。
とりあえずcodeパラメータに色々入れてみようということで、execでライブラリをimportした時の挙動を試していると、突然Response bodyにFlagが含まれる事象が発生。同じリクエストで再度実行したが再現できず、サーバが一時的に破壊されていたものと見られる。
解けたと言って良いのかわからないが、 TsukuCTF23{175_4_73rr1b13_4774ck_70_1n73rrup7_h77p} がフラグ。
✅[misc] what_os
Difficulty: easy
Solved by: ryo-a
とある研究所から、昔にシェル操作を行った紙が送られてきた来たんだが、 なんのOSでシェルを操作しているか気になってな。 バージョンの情報などは必要ないから、OSの名前だけを教えてくれないか?
にしても、データとかではなく紙で送られて来たんだ。一体何年前のOSなんだ。。。
送られてきた紙をダウンロードして確認してほしい。
A lab sent me a paper of operation for a shell, and I wondered on which OS it was running.
Please let me know only the name of the OS except for other information such as version.The data is sent by paper, not a program by the way. It means the OS is really old, right?
Anyway, please check the attached file and investigate it.
OSといってもどの粒度で答えてよいかわからなかったので、一旦ChatGPTに投げてみる。
あまり見かけないディレクトリ名をGoogle検索して、それがUnix由来のものであると確認。
TsukuCTF23{Unix}
✅[misc] content_sign
Difficulty: medium
Solved by: kn1cht
どうやら、この画像には署名技術を使っているらしい。この署名技術は、画像に対しての編集を記録することができるらしい。署名技術を特定し、改変前の画像を復元してほしい。 Flag形式はTsukuCTF23{<一個前に署名した人の名前>&<署名した時刻(ISO8601拡張形式)>}です。例えば、一個前に署名した人の名前は「Tsuku」で、署名した時刻が2023/12/09 12:34:56(GMT+0)の場合、フラグはTsukuCTF23{Tsuku&2023-12-09T12:34:45+00:00}です。なお、タイムゾーンはGMT+0を使用してください。
It seems this image is applied digital signature, which can record edit history for an image.
Identify the technology and restore the raw image, which means the image before revised.
signed_flag.pngなる画像ファイルが提供された。署名ということなのでなにか手がかりがないかとバイナリエディタで中身を眺めていると、”dcodelc2pa”という文字列があった。これを検索すると、C2PAという画像の編集履歴を証明する電子署名の技術があることがわかる。
画像からC2PAの情報を閲覧できるサイト(https://contentcredentials.org/verify )を発見したのでとりあえずファイルを放り込んでみると、編集履歴を閲覧できた。これで過去の編集者の名前が”TSUKU4_IS_H@CKER”だとわかる。一方で、このサイトでは編集時刻が”2023年12月8日 22:00 JST”となっており秒単位の時刻を確認できなかったので、別のソフトウェアでも確認してみることにした。
何を使っても良いと思われるが、公式のPythonライブラリを見つけたのでインストールして使用した。
json_store = c2pa.verify_from_file_json("signed_flag.png",".")
のようにすると署名情報がJSON形式で得られるので、どこかに保存して2023などと検索すれば時刻が出てくる。なお、2回保存されているので時刻も2つあるが、1個前に〜という問題文なのでJSONの中身を真面目に読まずとも古い方を回答すればよい。
"signature_info": {
"issuer": "C2PA Test Signing Cert",
"cert_serial_number": "640229841392226413189608867977836244731148734950",
"time": "2023-12-08T13:00:26+00:00"
},
TsukuCTF23{TSUKU4_IS_H@CKER&2023-12-08T13:00:26+00:00}
✅[OSINT] 3636
Difficulty: easy
Solved by: Gin / ryo-a
ここはどこ...?
Flagフォーマットは TsukuCTF23{緯度_経度} です。
端数は少数第四位を四捨五入して小数点以下第三位の精度で回答してください。Where is there...?
The flag format is TsukuCTF23{latitude_longitude} .
Fractions should be rounded to the nearest fourth decimal place, and please answer >to the third place.
****o.ed.jp
というドメインを持ち、電話番号が 5-3636
で終わる場所を探す必要がある。
シンプルに 5-3636 site:ed.jp
でGoogleを検索すると、会津若松市の「とうみょう子ども園」がヒットする。
しかし子ども園自体は答えではないようで、看板の場所を探す必要があるようだった。看板を見つけられず、ryo-aが苦戦してGinにパス。
Ginがストリートビューで矢印の向きに注意しつつ巡回したところ、それらしい看板を発見した。
TsukuCTF23{37.502_139.929}
バーチャル脚で稼ぐ回答。
✅[OSINT] CtrlAltPrtSc
Difficulty: easy
Solved by: ryo-a / kn1cht
仕事中に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}
最初はトリミング前の画像を復元できるaCropalypse脆弱性だと思って調査を開始した。
もし復元できる場合、ファイル終端のIEND
の後にも画像の実データが続いており、IENDが2つあるはずだが、IENDが1つしかない。
$ strings CtrlAltPrtSc.png | grep IEND
IEND
そこでkn1chtから「OSINTなので画像データをどうにかするというよりも画像に写ったものから推測する方針では」というコメント。
拡大してみると
赤いロゴが。半ば投げやりでSubmitしたのだが、これが正解。
TsukuCTF23{YouTube}
凝った問題だと決めつけたせいで大幅にロスしてしまった。今回のようにペナルティがない場合、そんなシンプルなはずは無いだろう思っても、単純な手段やエスパーから試していく方がよさそう。
✅[OSINT] RegexCrossword
Difficulty: easy
Solved by: ryo-a
クロスワードを解いてみて!
これを作った会社の本社の郵便番号をハイフンありで答えてね!!Solve the crossword!
Hyphenate the zip code of the headquarters of the company that made this!!
「正規表現クロスワードパズル」で検索すると2014年のツイートがヒットする。Twitterを検索していると会津大学に置いてあったことがわかった。
そのまま「正規表現 ナプキン」などでTwitterを検索していると社名を含むツイートが見つかった。
Eyes,JAPAN社の郵便番号がFLAG。
TsukuCTF23{965-0872}
✅[OSINT] TrainWindow
Difficulty: easy
Solved by: blackwasan
夏、騒音、車窓にて。
フラグのフォーマットは、TsukuCTF23{緯度_経度}です。
緯度経度は小数第五位を切り捨てとします。Summer, noise, at car window.
The format of the flag is TsukuCTF23{latitude_longitude}.
Latitude and longitude are rounded down to the fifth decimal place.
Flag:TsukuCTF23{35.0642_139.0664}
電車の車窓から撮影された写真の位置を当てる問題。
右奥の海面上に平たい島があり、手前の急峻な地形と合わせて考えると、初島ではないかと推測。
熱海周辺で捜索していると、JR伊東線沿いに同じマンションの配置が現れる場所を発見。
TsukuCTF23{35.0642_139.0664} がフラグ。
✅[OSINT] Yuki
Difficulty: easy
Solved by: blackwasan
雪、無音、窓辺にて。
フラグのフォーマットは、TsukuCTF23{緯度_経度}です。
緯度経度は小数第四位を切り捨てとします(精度に注意)。Snow, silent, at window.
The flag format is TsukuCTF23{latitude_longitude}.
Latitude and longitude are rounded down to the fourth decimal place (note the >precision).Flag:TsukuCTF23{42.968_141.167}
雰囲気良さげなホテル?から谷沿いの雪景色を撮影した写真。温泉街と思われる建物が並び、その直上に立派な橋が掛かっている。
こういった温泉街に立派な構造物や立派なホテルがあるのは、筆者の経験上有名温泉地や有名スキー場である傾向がある。
本州で有名温泉地・スキー場を探すも一旦諦め、北海道に移動してまずは有名な定山渓温泉を探していると航空写真で一致する配置を発見。撮影場所は定山渓ビューホテルの一角だとわかる。
フラグはTsukuCTF23{42.968_141.167}。
✅[OSINT] airport
Difficulty: easy
Solved by: ryo-a
つくしくんは、旅の思い出を振り返っていましたが、この写真はどこの空港かわからなくなりました。
ここはどこの空港か教えてくれませんか?
Flagフォーマットは TsukuCTF23{空港の3レターコード(IATA)} です。Tsukushi looks back his trip memories, but he forgot where this picture is taken. >Could you tell me which airport this is?
The flag format is TsukuCTF23{3 letter code of the airport (IATA)}.
左側にANA WINGSのDHC8-Q400(以下Q400)が駐機していることと、雰囲気から大阪伊丹空港であろうとわかるが、念のため他の可能性も検討したくなった。
グランドハンドリング車両が写っているが、空港が登場する問題においてグランドハンドリング車両の番号は当てにならない事が多いのでここではスキップする(路線バスなどと異なり、車番をまとめているマニアがあまり居ないため、Web上でヒットしづらい)。
奥を見ると滑走路番号 14/32
が記載されている(誘導路上の黄色看板に2桁の数字のみが記載されている場合は滑走路番号と判断してよい)。
ただ、伊丹なら滑走路が2本あり、滑走路番号が14L/32R
14R/32L
となるはずなので、直感が違うのか……?と不安になる。
ここで日本の空港の滑走路番号リストを引っ張り出してみる。
14/32
の滑走路を持つ空港のうち、ANAのQ400が就航していそうな場所を探すと松山空港が思い当たる。
TsukuCTF23{MYJ}→incorrect
じゃあ伊丹か……ということで正解。ペナルティもないので、直感を優先して初手で試すべきだったと反省。
TsukuCTF23{ITM}
✅[OSINT] big_statue
Difficulty: easy
Solved by: ryo-a
大きなドリアンだ!どこにあるんだろう?? フラグの形式は 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という店のようである。
ストリートビューからその存在が確認できる。
TsukuCTF23{1.3623_103.8872}
✅[OSINT] castle
Difficulty: easy
Solved by: ryo-a
この前、お城に行ってこの写真を取ってきたんだ!
どこにあるかわかるかい?フラグのフォーマットは、TsukuCTF23{緯度_軽度} です。 小数点は第三桁まで有効とします。
I took this picture in a castle last time.
Do you know where it is?Thef flag format is TsukuCTF23{latitude_longitude}, and is valid to the third decimal place.
Google Lensに放り込むと姫路の「太陽公園」が出てくる。
シンプルにGoogle Mapsから城の座標を取得し、 TsukuCTF23{34.886_134.630}
✅[OSINT] eruption
Difficulty: easy
Solved by: blackwasan
つくしくんは旅行に行ったときに噴火を見ました。噴火の瞬間を実際に見たのは初めてでしたが、見た日付を覚えていません。
つくしくんが噴火を見た日付を写真の撮影日から特定して教えてください。
撮影場所が日本なのでタイムゾーンはJSTです。フラグの形式は TsukuCTF23{YYYY/MM/DD} です。Tsukushi-kun saw the eruption when he was on a trip. It was the first time for him to actually see the eruption, but he does not remember the date he saw it.
Please tell us the date when Tsukushi-kun saw the eruption by identifying it from the date the photo was taken.
The time zone is JST because the photo was taken in Japan.
The flag format is TsukuCTF23{YYYYYY/MM/DD}.
写真の山の噴火日を特定する問題。山の形から桜島が見れる鹿児島市内で撮影されたものと分かる。
桜島の噴火日データベースを作ろう・・・ではなく、まずは写真のExif情報を確認すると、撮影日が入っているのでそれがフラグ。
フラグ:TsukuCTF23{2022/01/28}
✅[OSINT] fiction
Difficulty: easy
Solved by: r_indigo / Gin
「座標を教えてくれ」
フラグフォーマットは、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.
Google Lensより、VALORANTというゲームのSunsetというマップであると分かる。
モデルにしている場所がロサンゼルスに 34° 2' 2.3356" N 118° 12' 21.4261" W という説が以下のウィキにあったが、ストリートビューから見てこれといって一致する場所があるわけではなかった。
マップのwalkthrough動画より、山を背にした三叉路が当該の建物であることがわかるが、現実世界に同様の見た目の建物はなかった。
だが、シンプルに 34° 2' 2.3356" N 118° 12' 21.4261" W
を10進表記に変換するとFLAGが通った。
TsukuCTF23{34.0338_-118.2044}
✅[OSINT] free_rider
Difficulty: easy
Solved by: r_indigo
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}
「JR九州 無賃乗車 YouTube」などで検索して、この騒動を取り上げているブログを発見した。
ブログ内にリンクが張られている転載動画を視聴し、画像のシーンは176秒時点であると特定した。
騒動を取り上げているYouTuberの動画の中に、概要欄に元URLがあるものを発見した。
当該動画のURL(動画削除済み)が判明。
TsukuCTF23{https://www.youtube.com/watch?v=Dg_TKW3sS1U&t=176s}
✅[OSINT] green_bridge
Difficulty: easy
Solved by: blackwasan
この写真が撮影されたのはどこですか...?
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.
長閑な山間に大きな緑の吊り橋が掛かっている写真。「吊り橋 緑色」でヒットする写真から似たような構造のものを探す。
そうすると問題写真の右奥の建物が映る画角の写真を発見し、場所が栃木県那須塩原市の塩原渓谷に掛かる「もみじ谷大吊橋」と分かる。
撮影位置は道路上なので位置を調整する必要があるが、遠慮なくattemptする。TsukuCTF23{36.956_139.880} がフラグ。
✅[OSINT] laser
Difficulty: easy
Solved by: Gin
光源の座標を正確に教えてください。
フラグフォーマットは、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.
レーザー 直上 などで検索&最近Twitterでみかけた気がしたのでこれだろうと判断。
詳細な位置はわからなかったが、イベント名(御堂筋イルミネーション)+レーザーでTwitterを探したところ光源を含む画像を発見。
TsukuCTF23{34.7015_135.4992}
✅[OSINT] location_for_what
Difficulty: easy
Solved by: Gin
とある場所を友達と探索していると、「ここ、何かの映画の聖地だった気がするけど、名前忘れちゃった......」とのこと。
シュッと特定して教えてあげよう!Flagの形式は TsukuCTF23{映画のタイトル} です。
While going to somewhere with my friend, he says "I think this place is used for a movie, but I forgot the name...".
Let's quickly identify the movie name instead of him.THe flag format is TsukuCTF23{title_of_the_movie}.
言の葉の庭だろ→solve。
TsukuCTF23{言の葉の庭}
終了後にLensして調べたら中国語の投稿で言の葉の庭っぽいキャプションを付けていたのでこれでわかるのが正当?
✅[OSINT] mab
Difficulty: easy
Solved by: ryo-a
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}.
aguse.jpにURLを放り込む
ネームサーバにlolipop.jpがある。ロリポップは国内の有名なレンタルサーバサービスなので、これがFLAG。
TsukuCTF23{lolipop.jp}
✅[OSINT] perfume
Difficulty: easy
Solved by: Gin
とある施設でいろいろな香水を見かけたが、施設の場所が思い出せない。
この施設の場所を調べ、教えてほしい。フラグは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検索で「香水 博物館」で出てくるものとしては、磐田市のものと大分のものがあった。実際何個か記事を読んだりして壁や調度品の雰囲気、そして「エジプト香水瓶」などをキーワードに追加して検索したところ以下の記事がヒットして確信。
TsukuCTF23{33.311_131.488}
✅[OSINT] river
Difficulty: easy
Solved by: blackwasan
弟のたくしから、「ボールが川で流されちゃった」と写真と共に、連絡がきた。
この場所はどこだ?
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.
市街地の小川の位置を当てる問題。まず目につくのが左奥の「newgin専用駐車場」という看板。new”q”inではない。どうやらニューギンというパチンコ台を製造する業者があるらしく、会社の公式サイトによると全国津々浦々に販売拠点があるらしい。
これを1つずつ当たっていくしかないが、写真奥には小高い山があり、割と中心街の雰囲気なのでそれも頭に入れつつ探していく。そうするとニューギン鹿児島営業所の前に小川が流れていることに気づく。道路や山の配置を照らし合わせて正解であることを確認。
TsukuCTF23{31.5757_130.5532} がフラグ。そういえばさっきも鹿児島が出てきたような・・・。
✅[OSINT] stickers
Difficulty: easy
Solved by: Gin / blackwasan
この画像が撮影された場所を教えてください!
Flagフォーマットは TsukuCTF23{緯度_経度} です。
ただし、小数点4桁の精度で答えてください。Please tell me where this picture is taken!
The Flag format is TsukuCTF23{latitude_longitude}.
Please answer to the precision of 4 decimal places.
最初に、FUJITECらしきロゴからフジテックの拠点を調べたが意味はなかった。
次に背景の黄色い車。移動販売のプリンカーかと思ったら熱海市内の直営店舗にプリンを配送しているらしい。
熱海市内であることは間違いないがヒントがないため、良く見える事物から検索。
「熱海 千社札」では何もわからなかったが、
「東屋 瓦 熱海」で検索したところそれらしい施設がヒット。
周辺の様子と照らしても違和感がないので確定。
座標を調整してsolve。
TsukuCTF23{35.0967_139.0749}
✅[OSINT] tsukushi_estate
Difficulty: easy
Solved by: blackwasan
つくし君が写真に写っているビルにオフィスを構えたいらしいのだけど、築年数が少し心配......
つくし君の代わりに調査してください!
Flagの形式は TsukuCTF23{築年_月} です。
例えば、2022年3月に出来たビルであれば、 TsukuCTF23{2022_03} になります。It seems Tsukushi wants to have his office in the building in the picture, but he is worried how old this building is.
Please investigate about it instead of him.The flag format is TsukuCTF23{year_month}. For example, if a building is built in March 2022, the flag is TsukuCTF23{2022_03}.
電話番号から、つくし不動産公式HPを発見。物件検索が出来るので、貸し事務所にチェックを入れて借りられそうな(借りる訳では無いが)物件を検索する。すると3件しかヒットせず、全物件の写真を見ていくと、問題写真のタイル柄があるビルがヒットする。伊勢SIビルという名前で1983年03月に竣工したという情報が載っているのでこれが答え。TsukuCTF23{1983_03} がフラグ。
✅[OSINT] tsukushi_no_kuni
Difficulty: easy
Solved by: Diffuse
かつて、筑紫国を統治していた国造の一人が乱を起こした。
その子孫の一人が、ある天皇と同一人物である説が提唱されている。
その子孫の名前を TsukuCTF23{} で囲んで答えよ。Once upon a time, one of the Kokuzou(国造) who ruled Tsukushi-no kuni(筑紫国) caused a rebellion.
A theory has been proposed that one of his descendants was the same person as a certain emperor of Japan.
Answer by enclosing the name of the descendant in TsukuCTF23{}.
「筑紫国造」で検索し、問題文で言及されている反乱を「磐井の乱」であると推定した。
歴代天皇の人数は有限なので、歴代天皇について調べて「ある天皇」を特定しようとするが、歴史や伝承について言及したある程度まともな文章からは、このうち磐井と関連する人物がいるという情報は出てこない。
「筑紫国 天皇 同一人物説」などの検索結果から「九州王朝説」という説について知る。
大和朝廷や日本神話の起源はあれもこれも九州にある、という胡乱な説である。これによると、筑紫国造磐井本人についてすら特定の天皇との同一人物説が存在する(ので、磐井の任意の子孫についてもおそらく、無根拠に天皇家との関連を示す言説が存在しうる)ということがわかった。天皇の系譜ではなく、磐井の子孫と示唆されている人物を調べていくと、筑紫姓を名乗っていたある飛鳥時代の豪族がFLAGだった。いずれの天皇と同一人物説が囁かれているのかは未調査。
TsukuCTF23{筑紫薩夜麻}
✅[OSINT] broken display
Difficulty: medium
Solved by: r_indigo
表示が壊れているサイネージって、写真を撮りたくなりますよね!
正しく表示されているときに書かれている施設名を見つけて提出してください!
フラグ形式: TsukuCTF23{◯◯◯◯◯◯◯◯IYA_◯◯◯◯◯◯S}A Signage with a broken display makes me want to take a picture, right?
Find the name of the facility whose name is written on when it is displayed correctly and submit it!
The flag format: TsukuCTF23{◯◯◯◯◯◯◯◯IYA_◯◯◯◯◯◯S}
写真中央右にロクシタン(L'OCCITANE)の看板が映り込んでいる。
ロクシタンの店舗は全国に124店舗あるので、1店舗ずつ住所と店名を見ながらローマ字読みがIYAで終わるデパート(〜屋)か地名を探した。
その結果、該当したのは「宇都宮」と「西宮」。このうち「宇都宮」は施設全体が東武百貨店であり、サイネージの表示に近いロゴ等は存在しない。西宮阪急が入居する「阪急西宮ガーデンズ」のロゴタイプとわかる。
TsukuCTF23{NISHINOMIYA_GARDENS}
✅[OSINT] flower_bed
Difficulty: medium
Solved by: ryo-a
花壇の先にQRコードのキューブがあるようですね。友人曰く、モニュメントの近くに配置されているものらしいです。
こちらのQRコードが示すURLを教えてください! リダイレクト前のURLでお願いします!Flagの形式は TsukuCTF23{URL} です。例えば、https://sechack365.nict.go.jp がURLなら、 TsukuCTF23{https://sechack365.nict.go.jp} が答えになります。
It looks there is a cube of QR code. My friend says it is placed near the monument.
What is the URL which the QR code specifies. Please answer the URL before the redirection.The flag format is TsukuCTF23{URL} . For example, if the URL is https://sechack365.nict.go.jp, the answer is TsukuCTF23{https://sechack365.nict.go.jp}
「QRコードのキューブ」はこれのこと。もちろんQRコードの読み取り条件を満たしていないのでこれから読むことはできない。
韓国語がチラ見えしているが、Google Lens曰く「公式サイト」の意であるらしく役に立たない情報。
チラ見えしている日本語と英語から旧福岡県公会堂貴賓館(The Previous Fukuoka Prefectural Civic Hall and Honorary Guest House)だと推定。
ストリートビューを見ると、文字のモニュメントの横にキューブがあることが判明。
Webを検索した画像を読み取って出た以下を試すがincorrect。
TsukuCTF23{https://www.crossroadfukuoka.jp}
そしてよく見ると、問題画像とQRコード横の英語の長さが異なることがわかった。おそらく差し替えられたのだろう。
以下のGoogle Mapsの写真にある画像を探すと問題と一致するQRコードが得られた。
TsukuCTF23{https://www.fukuokaken-kihinkan.jp} →INCORRECT
エッ!?と思ったが、別のQRコードリーダで試すとhttpsでないものが得られた。
TsukuCTF23{http://www.fukuokaken-kihinkan.jp}
QRコードリーダアプリは気が利いている(自動でWebページを開いてくれる)ものが多いので、1つくらいはプレーンな挙動をするものを入れておきたい。
✅[OSINT] hunter
Difficulty: medium
Solved by: Gin
名前をメールで聞こうとしたところ、相手の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."
全通り書き出し。
ChatGPT(GPT-3.5)で「ワイルドカードを用いた qeinijo[*1]iby[*2]という文字列があります。[*1][*2]がワイルドカードの位置で、それぞれ0から9までの数字、aからzまでの英字、ピリオド(.)が入ることになっています。Excelを用いて、全通りを書き出すためのコードを教えてください。」。→VBAを教えてもらい突っ込む→できた!
Google Chatで新しいチャットを作成→ユーザを招待のところに全部突っ込む→赤くならないものが存在するGoogle Account
→Epieosに突っ込むとFLAG
TsukuCTF23{GHun7_i5_u5efu1}
キモは大量アクセスにならず、複数の候補を一気に検索する方法を探すこと。今回はたまたま思いついたGoogle Chatを利用した。Google Groupsなど、複数人を同時に追加する機能があるGoogleのサービスを利用すれば大体同じことができると考えられる。
✅[OSINT] kiZOU
Difficulty: medium
Solved by: r_indigo
ここは日本で一番のリゾート地!少し歩くと目の前に素敵な像が見えたから写真を撮ったつもりだったんだけど、見返したら端っこしか写ってない!困ったなぁ、この像についてもっと知りたかったんだけどなぁ。僕の代わりにこの像について調べてくれないか?
フラグ形式は 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}.
写真右中央から店舗名は「au Style NAHA」とわかる。
入居している商業施設は「パレット久茂地」。
検索すると以下の投稿がヒットする。
TsukuCTF23{上原清善}
✅[OSINT] koi
Difficulty: medium
Solved by: Gin / yuruint
画像フォルダを漁っていると、鯉のあらいを初めて食べた時の画像が出てきた。
当時のお店を再度訪ね、鯉の洗いを食べたいが電話番号が思い出せない。誰か、私の代わりにお店を調べ、電話番号を教えてほしい。
記憶では、お店に行く途中で見かけたお皿が使われていた気がする。。。
Flagは電話番号となっており、ハイフンは不要である。
TsukuCTF23{xxxyyyzzz}I was sorting through my picture folder and found a picture of the first time I ate 鯉のあらい.
I want to go to that restaurant again to try 鯉のあらい, but I can't remember the phone number.Can someone please look it up and give me the phone number?
My recollection is that they used a plate I saw on the way to the restaurant.
Flag format is the phone number, And no hyphen needed.
TsukuCTF23{xxxyyyyyzzz}
Google Lensでは小石原焼と出てくる。
Diffuse曰く、「飛び鉋」という技法による模様であるとのこと。この技法による焼き物は以下の2つが有名であるとわかる。
- 小石原焼(福岡県東峰村)
- 小鹿田焼(大分県日田市皿山)
チーム総出で福岡県・大分県を中心に鯉を出している飲食店を捜索。
なかなか正解に繋がらず全員で大量の試行を重ねていたところ、運営よりFLAG訂正が入り、Ginが投げていた店が正解だった。
(Gin)
九州全体をみてGoogle Mapsでやけくそ調査。
Google Mapsで料理名で調べるとサムネがその料理になりがちなことを利用して一覧。机の雰囲気からとりあえず調べて回答した気がします。
結局皿産地についてはあまり考えないで、鯉のあらい一点張りで解いたことになる。しかし、鯉のあらいの出し方の地域性については、検索の優先順位の都合上参考になった。また、筑紫国への拘りから地域の優先順位も付けられる。
✅[OSINT] travel_with_tsukushi
Difficulty: medium
Solved by: ryo-a
旅が好きなつくしくんは、空港の写真からそれがどこの空港かすぐにわかります。
つくしくんからの挑戦状!
これがどこの空港かわかるかな?
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)}.
Google Lensで管制塔を囲うとKLIA(クアラルンプール国際空港)であることがすぐに分かる。管制塔は空港によって外見や場所(背景)が異なることも多く、空港を見分けるポイントになりやすい。
シンプルに空港コードが答え。
TsukuCTF23{KUL}
秒で解けたため、難易度mediumの理由がよく分かっていない……
以下余談。おそらく管制塔が隠されていても、航空機の情報から特定可能だったと思われる。
根性があれば撮影日も特定できるはずだが、Flightradar24の課金アカウントが必要にはなりそう。
✅[OSINT] twin
Difficulty: medium
Solved by: r_indigo / Gin
ハッカーは独自に収集した大量の個人情報を、とあるWebサイト上で2023年11月23日に投稿した。
我々はこの投稿IDがKL34A01mであるという情報を得た。ハッカーのGitHubアカウントを特定せよ。A hacker posted a large amount of personal information collected independently on a certain web site on November 23, 2023.
We have obtained information that this posting ID is KL34A01m.I need you to identify the hacker's GitHub account.Unlock Hint for 0 points
このWebサイトは28歳のオランダ人起業家によって2010年代初めに買収されている。
ヒントがわからず、ryo-aがChatGPTに投げたところ「このサイトはReddit」という誤答を得る。Redditの投稿IDが非常にそれっぽいので引っかかってしまい、しばらく「以下のURLが削除されたもので、何らかの手段でここから得る」という仮定の下で苦戦していた。
https://www.reddit.com/comments/kl34a01m/
ここでGinが、サイトはPastebinであることを特定した。
ChatGPT (GPT-4)の応答
who is the entrepreneur in netherland which bought a company which supply Website to post messages in the early 2010's
The entrepreneur from the Netherlands who bought a company supplying websites to post messages in the early 2010s is Jan Koum. While he's not originally from the Netherlands, he lived there for a time and it was during this time that he, along with Brian Acton, co-founded and purchased WhatsApp. WhatsApp started as a website to post statuses/messages in 2009 before it evolved into the globally recognized messaging app it is today.
Another example, please
Apologies for the confusion earlier, but it seems my initial response contains incorrect information, as Jan Koum is not well-connected to the Netherlands.
That said, could you provide more specific details about the entrepreneur or company you're interested in? Due to privacy concerns and the sheer number of tech startups and acquisitions, it's somewhat challenging to provide a precise answer.
For instance, Michael van Swaaij is a Dutch entrepreneur who was involved in various internet companies. He was interim CEO of Skype and chairman of eBay Europe, but these companies do not exactly fit your description.
More details would definitely help in providing a satisfactory answer.
the website has posting ID for each post.
Based on the information you've provided, it appears you might be referring to Alexander R. Klopping. He is a Dutch internet entrepreneur who co-founded Blendle, a notable online platform for newspapers and magazines.
Blendle allows users to make micro-payments for individual articles from various publishers. Each article can be considered as a post with an unique ID, which aligns with your hint about having posting IDs for each post.
However, Blendle doesn't exactly fit the description of a "website to post messages," it's more akin to a digital newsstand but does harness a unique ID system with its posts.
If this isn't the entrepreneur you're thinking of, any additional information would be very helpful.
some hacker use the site to post what they got from data breach
Ah, it sounds like you're referring to Coen Swijnenberg. He is a Dutch radio DJ and entrepreneur who co-founded Pastebin.com. Although not directly related to message posting in the traditional sense, Pastebin allows users to store and share text online, known as "pastes". Each "paste" is assigned a unique URL.
While Pastebin was not initially created as a platform for sharing breached data, it has historically been used by hackers occasionally as a place to showcase what they've acquired from data breaches. Its unique paste ID for each post seems to align with your description. Pastebin was created in 2002 and Swijnenberg purchased it in the late 2010s.
the entrepreneur was 28 years old when he/she bought the website
Based on the information provided, it appears you're referring to Martijn R. Bevelander. He is a Dutch internet entrepreneur who, at the age of 28, became involved with MessageBoard.nl, a website where users could post messages and each post had a unique posting ID.
However, it's worth noting that MessageBoard.nl has not been widely reported as a place where hackers posted data they obtained from breaches. Nonetheless, the site fits several elements of your description.
I hope this helps! If this isn't the right answer, any extra information would be greatly appreciated to provide a thorough response.
Pastebin上にそれっぽいものが存在した。
Pastebin上のユーザ名はgemini6152で、他にTsuineというメモがあるが、これ単体はRubyのQuineで意味を持つもの(実行するとFLAGを得られるもの)ではなかった。
上記3件ともWayBackにヒットがなく、Whatsmynameでgemini6152を検索しても得られるものはなかった。
ここでr_indigoがtsukushi + quineでTsuineという固有名詞だと判断し、GitHubで検索したところ、アカウントを探し当ててFLAGをゲット。
TsukuCTF23{gemini5612}
✅[OSINT] grass_court
Difficulty: hard
Solved by: ryo-a
しばらく使われていないテニスコートのようだ。この日本にあるテニスコートの場所はどこだろう。フラグの形式は TsukuCTF23{緯度_経度}です。
小数点以下5位を切り捨てて、小数点以下4桁で答えてください。Looks like a tennis court that hasn't been used for a while. Where is the location of this tennis court in Japan? The format of the flag is TsukuCTF23{latitude_longitude}.
近隣は住宅街。後ろにパラボラアンテナが2つ?3つ?見える。
奥のものは探査機との通信用やVLBI用など、深宇宙との通信を意図したスケールのものに見える。つまり、放送用などではない気がする。
「日本 パラボラアンテナ 一覧」などで検索して宇宙関係を洗い出そうとする。数やロケーションなどからして臼田などは候補から外していくと、近隣に住宅街がある水沢VLBI観測所が有力候補になる。
ただ、航空写真からは汚れたテニスコートらしいものが見えない(綺麗なテニスコートしかない)。
木の配置にも自信が無いが、空調の室外機のようなものは形が一致しているように見えるので、テニスコート周辺の座標を取得してSolve。
TsukuCTF23{39.1348_141.1324}
✅[OSINT] udon_2023
Difficulty: hard
Solved by: Gin / yuruint
ここのうどん、麺だけじゃなく、鶏天も美味しい!!!
お店の場所を忘れたから、7文字のplus codeで教えて!!!
フラグフォーマットは、+を含めてTsukuCTF23{REDACTED+REDACTED}This うどん(udon) is not only good 麺(noodle), but also 鶏天(chicken tempura)!!!
I forgot where the restaurant is, so give me a 7 letter plus code!!!
The flag format is TsukuCTF23{REDACTED+REDACTED} (including +)
これもチーム全員で探索した問題。最終的にはGinがFLAGを得た。
「うどん 鶏天3個 -丸亀」でググって画像をみるとそれらしい机・卓上セルフサービスのチェーンにヒット。食べログを信じてその店舗名を入れれば良かったのだが、血迷ってチェーン全店確認した。
TsukuCTF23{PP63+G6}
感想など
ryo-a
xINT CTF2023が個人戦だったので、HEXA OSINT CTF v2以来の久しぶりのチーム戦でした。
TsukuCTFではsolveが増えると点数が減っていくため、解ける問題はなるべく早く解こうと心がけ、得意としている空港関連の問題から手をつけ、OSINTを中心に解き進めていきました。基本的には行き詰まったら他の問題に切り替える、というのを繰り返していたので、解いた順番は正直記憶に残っていません。
正直なところ、解けないかもと思って諦めかけた問題や、正答とは別の方向に進んでしまっていた問題がいくつかあったのですが、チームメイトがそれらを解き進めたり助言をくれたりして、非常に心強かったです。チーム戦は楽しい!
ただ、今回はOSINT問以外でかなり苦戦してしまったので、他分野も精進します。
チームメイトの皆さん、運営の皆さん、本当にありがとうございました。
kn1cht
海外での学会発表準備と本CTFがダダ被りしていたため、5~10分で解ける問題2問を解いてフィニッシュとなりました。開始直後、他の方がOSINTをゴリゴリ解いていたのでWeb問を見ることにしてbasicを解きました。その後はWebやMiscのカテゴリを空き時間に見ていたところ、content_signの方針が30秒くらいで立ったのでそのまま回答しました。
チーム内で一番貢献が小さい自信はありますが、もともとOSINT CTFのプレイヤーが多いチームだったので、それ以外の問題を潰す手伝いが多少はできたかなと感じています。
Gin
OSINT以外できない担当でした。sunsetで痛恨の1ミスを犯してしまったのが反省です。チーム戦なのでもっと得意な人がいるはず、いなくても文殊の知恵を発動すべきでした。チームに参加するのは初めてでしたが、(このミスを除けば)全体的に楽しく解けました。ざっくり分担しながら容赦なく力技の全探索を試したり、あれやこれやと話しながらやったりするのもよいものですね。
blackwasan
TsukuCTFは初参戦でした。長丁場でしたが睡眠と食事以外はほとんどPC前に張り付くことが出来たかなと思います。開始と同時にまずは得意&大量に出題されているOSINT問を攻めようということで、TrainWindowとYukiを取り、その後もeruption、green_bridge、river、tsukushi_estateなどを順調に取っていきました。そこからsunsetの撮影位置を色々計算したりしながら、web問などを解いていました。まぐれでEXECPyは取れたものの、まだまだweb問に対するスキルが備わっておらず、方針を立てるのも大変なので、この分野も今後勉強していこうと思います。
最後はRSA暗号の問題で超巨大整数の8乗根を求めていたら時間が来てしまいましたが、色々考えさせられる楽しい問題ばかりでした。運営の皆様、ありがとうございました。そして今回は6人でチームを組ませていただきました。CTFでは他のチームメイトの視点を見るのも糧になるので、今回もとても勉強になりました。一緒に頑張ってくれたチームメイトの皆様、ありがとうございました。
r_indigo
CTFに参加するのは人生初でした。0ポイントにならず、安堵しています。簡単な問題が刈り尽くされた後半はほぼ見学しているだけでチームの役に立てなかったため、今回学んだことを次回以降に活かしてもう少し貢献できるよう努力したいと思います。ありがとうございました。
Discussion