個人で参加しました。revとmiscを全完し5440ptで81位で終えました。
初めの5日ほどで解ける問題を全て解き後は触れていませんでした。久々に参加したCTFですが、初心者向けだったので解ける問題が多くて楽しかったです。しかし、いつまでたっても初心者脱却が出来ない。
多分、全完した方々がwriteupを上げると思うので必要なさそうだけど書いておきます。
Misc
morse_one(30pt)
ファイルの中身はDBSがランダムっぽく書かれているテキスト。
結構悩んでいたけれど、これらを"."、"-"、" "の3つに置換すればいいことに気づいた。Sは一番少ないので空白で確定しているからDBを適当に割り振ってデコードするやつに投げればいい。
D -> "." 、 B -> "-" 、 S -> " "が置換の答え
cyberchefとかに落とす。
flag{VIBROPLEX}
Hash(50pt)
3つのhash値を探せばいいというものだったので、shellで次を実行する。
<hash>に該当するhashを入れる
flag{hardest_logic_puzzle}
F(80pt)
問題分にBrainf*ckのコードがある。
オンラインBrainf*ckデバッガ で実行した。
flag{Don't_Use_the_F-Word!!}
magic_number(80pt)
マジックナンバーが3つ渡される。上からpng、rar、jpg。
rarは知らなかった。
flag{post_rar_light}
Stegano(100pt)
写真が渡される。stegsolve.jarでrgbの値をずらして?見ていく。
最後の部分が小さくて見つけにくかったのと、最初のlがIかよく分からなかった。(lだった)
flag{Re4l17y_1s_cReA73d_by_7h3_m1nd_rA9}
morse_zero(100pt)
これはcatだけだとZしか見えない。hexdumpすると見える。これはそれぞれゼロ幅スペース。
e2 80 8c -> "-" 、e2 80 8b -> "." 、5a(Z) -> " "
flag{ZER0_W1DTH_SPACE}
ransom_note(100pt)
写真にランサムウェアの名前がある。gandcrab
これで調べるとdecoderがあるのでそれを使って治す。
flag{unlock1ng_y0ur_d1gital_life_with0ut_paying;)}
Nothing(120pt)
catするとすごい空白ができる。whitespaceなので、これのdecoderに投げる。
Whitespace Language - Online Translator/Interpreter
flag{And_Then_There_Were_None}
i_knew_it(120pt)
これ、めっちゃ適当でちゃんとコードを見ずに解いてしまった。
最近、やったのがこれだったので適当に入れるとビンゴだった。
flag{RC4}
Redacted(150pt)
pdf -> pptxのツールを使うとうまくいけばある程度復元できる。今回はそれでうまくいった。画像を動かすと隠れているflagが出てきた。
flag{weather_balloon}
strong_password(250pt)
パスワード解析といえばJtR + hashcat。
今回はパスワードの付け方が与えられたのでルールを書いてあげればすぐに出る。あと、分かっていない年月はランダムにやらせると時間がかかると思ったからこちらで順番に指定していった。
pass : qYL%20210228!
展開するとflagが出てくる。
flag{And_n0w_h3re_is_my_s3cre7}
今回の問題でやっとhashcatを使いこなせた気がする。
Network
これは1問だけvcanのやつが残ってしまった。
Host(30pt)
stringsするとhost欄があった。
flag{ctf.setodanote.net}
tkys_never_die(50pt)
wiresharkでオブジェクト抽出をする。今回はhttp。
flag{a_treasure_trove}
echo_request(120pt)
icmpに絞って、通信の中身を見ていくと送信データがflagの分割内容になっている。
flag{ICMP_Tunneling_T1095}
stay_in_touch(150pt)
tcp streamを見る。この時、データはUTF-8で表示しておく。14でパスワード通知が行われている。この前の通信を見ているとzipが送られている。
バイナリ形式で送られていてこれはbase64されているので、cyberchefで復号してzip形式で保存する。展開するとflagがある。
flag{SoNtOkIhAmOuKaTaHoUmOtSuMuRuNoSa;)}
Digdig(200pt)
hexたちを文字列に治す。多分long_to_bytesで治ったと思う。
すると複数のflagのパーツが出てくる。合体させていくと次の4つが出来た。
flag{This_is_DAMMY_FLAG}
flag{Nice_try_Sorry_for_that}
flag{7h3_k3y_15_53cur17y}
flag{DNS_S3cur17y_T1071!}
上2つはなくて、下から入れていくと正解だった。
flag{DNS_S3cur17y_T1071!}
Logger(250pt)
fileでみるとこれはUSBの通信を記録したものらしい。
ぐぐると過去のwriteupがヒットしたのでそれを引用した。
flag{QWE_keyb0ard_RTY}
tkys_not_enough(250pt)
何も考えずにwiresharkで開くと開けなかった。fileコマンドでみるとデータベースとあった。とりあえずbinwalk
gzipって普段は関係ないものだと思うけど、これだけしか出てこないのはそれはそれで気持ち悪かったので抽出してみた。
どちらもtextファイルだった。片方にflagがあった。
flag{netw0rk_shell_2000}
Web
点数が伸び悩んだ最大の原因はこれ。多分上位層みんなweb全完してるっぽい?回答者数的に。
webはほんとにわからんね。教えてくれる人がほしい。
Body(30pt)
コードを読む。
flag{Section_9}
Header(50pt)
networkからコードとか写真とかの詳細情報を見る。これのHeaderにflagがあった。
flag{Just_a_whisper}
puni_puni(80pt)
なんて調べたか忘れたけど、decoderが出てきたので使った。
確か、ひとつだけうまく治らなかった気がするけどflagは取れた。
デコード後はこんな感じ。
フラグは、さん、さん、ピー、ユー、エヌ、ワイ、
シー、オー、ディー、イー、よん、よん、です.
カタカナ表記は半角英小文字に、
flag{33punycode44}
MX.Flag(150pt)
なんか解けた。コードを見ると表示されていない?写真があったのでそれを持っているURLに飛んだ。
https://ctf.setodanote.net/web007/images/favicon.png
コード?にflagがあった。
flag{Mr_Flag_hiding_in_the_favicon}
Osint
残った問題は検討がつかなかった。Osintは割と調べ方の問題な気もする。(いやでもそれは素数のやつだけか
tkys_with_love(30pt)
C6DF6
で調べると出てくる。
flag{Symphony_of_the_Seas}
Dorks(50pt)
dorks google login.phpって調べるとヒットした。
flag{inurl:login.php}
filters_op(50pt)
from:cas_nisc since:2017-05-15 until:2017-05-16
をtwitterの検索欄に打つ。
flag{#WannaCrypt}
MAC(50pt)
ここでもどこでもいいけど投げていく。
flag{O_U_I_Y_A}
tkys_eye_only(50pt)
天気のサイトを写した写真が渡されている。左上に座標があるからそれをgoogle mapに打つ。初め、ヒントに騙されたけど解けた。
flag{United_Nations}
MITRE(100pt)
Enterprise Techniques - attack-mitre-japan
ATT&CKの話であることは分かっていたけど上のようなflagに直結するサイトを探すのに少し時間がかかった。渡された形式通りにやっていく。flagになるのはこのTXXXXにヒットしたやつの頭文字。
flag{MITRE_ATTACK_MATLIX_THX}
Ropeway(120pt)
画像検索する。すぐに浜名湖なんちゃらが引っかかる。サイトにとぶと答えがある。けど、ここからローマ字に治すのがちょっとうまくできなくて何回か引っかかった。
flag{kanzanji}
identify
これ途中で止まってしまった。このtsuruというファイルはマルウェアらしい。そこで、virus totalとかany.runで見てみた。ここで使うのはファイルのsha256とか。どちらも引っかかって、特にany.runはいろいろあったんだけど進まなかった。
・https://app.any.run/tasks/50ac34a0-c4e1-41b8-bd1f-29ec76f7164b/
・https://yrsuccessesareunheraldedyrfailuresaretrumpeted.setodanote.net/
Crypto
これも2問残ったけど、暗号手法みたいなのは分かっていた。実装できず。
base64(50pt)
そのまま
flag{It's_called_base64!}
rot13(50pt)
そのまま
flag{Even_you_Brutus?}
pui_pui(80pt)
コード書いた。っていってもchrにするだけ
flag{Have_you_ever_heard_of_Hexdump?}
tkys_secret_service(120pt)
単一換字式暗号(あってる?)。サイトと辞書使って直していく。
flag{puipui_car_of_mol}
lets_bake(150pt)
与えられたrecipeはbase64されている。ただ、これ一気にdecodeにほりこむとエラーが吐かれるので分けて送る。=があるからそこで分割するとうまくいった。
From_Base64('A-Za-z0-9+/=',true)
From_Hex('None')
Fork('%','_',false)
RC4({'option':'UTF8','string':'chef'},'Latin1','Latin1')
あとは、この通りにしてencodeされたflagを投げる。
flag{hello_baked_cipher}
vul_rsa_01(200pt)
普通のrsa。いつも使っているコードを使いまわした。
flag{weak_rsa_can_be_decrypted!}
vul_rsa_02
rsa big eって調べるといろいろヒットした。実装力と理解力がなくて諦めた。
WEARECIA
EMUFPHZLをたまたま切り出して調べると切り出し方がよくてヒットした。
kryptos sculpture cipherみたいなやつっぽくていろいろ記事出てきたけど、こちらも諦めた。
Rev
全完。勉強になる問題もあった。
Hello_World(50pt)
exe。ただ実行するとだめと言われる。stringsで見てみるとflagという入力を待っている。
flag{free_fair_and_secure_cyberspace}
ELF(80pt)
ヘッダがいじられている。7f 45 4c 46に修正。実行
flag{run_makiba}
Passcode(120pt)
elf。実行するとpassを求められる。ghidraで見てみる。
strcmpで20150109と比較しているのが分かる。
flag{20150109}
Passcode2(150pt)
elf。ghidraでみると条件分岐が多いので、flagが出力されるところから上がって見ていく。passの長さは0xb。この下のwhile文を見る。
入力したpassと内部のデータ^0x2aを比較していっている。なので、この内部データを持ってきてやればいい。
flag{25.Sep.2014}
to_analyze(200pt)
.NETなのでC#。dnspyとかで解析する。
C#の配列の使い方を知らなくて、困ったけどなんとなくで解いた。
上からその配列に対していろんな処理をしている。これをコピーして実行していけばいい。
flag{Do_y0u_Kn0w_Ursnif?}
Forensic
paint_flag(50pt)
docx、pptxはzipにして展開できる。
展開してやると、word/mediaにflag.pngというファイルが。
flag{What_m4tters_is_inside;)}
Mail(50pt)
Sent-1のzipファイルをデコードして展開。
これもbase64なのでcyberchefに投げてダウンロードする。
flag{You've_clearly_done_a_good_job_there!!}
Deletedfile(80pt)
FTK imagerでunallocated spaceを見る。
0005が答えのファイル。
flag{nosce_te_ipsum}
Timeline(100pt)
メモが少なすぎて思い出せないんだけど
WindowsTimelineparser.exeっていうツールを使ってできたっぽい。
なんでこのツールにたどり着いたんだろう。
flag{Th3_Fu7Ure_1s_N0w}
browser_db(100ot)]
flag{goosegoosego}
MFT(100pt)
MFTECmd.exeというツールを使う。
flag{kimitsu.zip}
tkys_another_day(100pt)
apngというアニメーションの写真。
apngdisというツールを使うとできた。複数の写真が作成され。繋げる。
flag{a_fake_illness_is_the_most_serious_disease_f5ab7}
TITLE(120pt)
この問題はずっと使いたかったツールが使えたので楽しかった。
画像のサイズを1280✕1280に変更する。すると一部分のQRコードが見える。これは次を使うとできる。
flag{Y0u_h4ve_w1tnessed_t00_much}
unallocated space(150pt)
壊れているファイルが渡される。
これで修復できる。たまたまpartedというツールを見つけた。startはfileコマンドで出てきた値を、endは適当に入れると治った。
あとは修復できたのFTK Imagerに食わせる。rootを見るとflagに関する動画があったので、抽出して見る。
flag{file_carving_gogo}
Programing
これ、サーバーでやるやつ使えるものが少なくてどうやるのか全く分からなかった。なので、手元でできる2もんは解けた。
ZZZIPPP(80pt)
コード書く。
なんか、sleep挟まないとエラーが出た(それで挟んでいると思う)。
flag{loop-zip-1989-zip-loop}
EZZZIPPP(150pt)
コード書く。
flag{bdf574f15645df736df13daef06128b8}
Pwn
なんも分からなかった。
tkys_let_die(100pt)
gateをopenにすればいい。
AAAAAAAAAAAAAAAAAAAAAAAAAAopen
を投げればうまく行く。
flag{Alohomora}
最後に
楽しかった。後輩とかやっていたのかな。割と高専セキュコンで出てきそうなレベルな気がした。どうだろう