2020年12月3の21:30 - 12月4日21:30 で行われていた、Shakti CTF 2020の [Misc] 分野のwriteupです。
※ まとめはこちら tech.kusuwada.com
Sanity Check
Go and checkout all the discord channels to find the flag!!
TopにDiscordへのリンクがあったので、参加
最初は #readme
channelしか表示されてなかったけど、なんかみんなが推してるっぽい 👍 を押したらchannelがいっぱい出てきた。
#rules
channeel のpinにflagがありました!
flag: shaktictf{i_solemly_swear_that_me_and_my_team_are_all_women}
emoji-gram
Find the hidden text in "🥳💀😇😜💩😩😫😺😎🤑😞🤯😭😕😿😽🤢👹😱😠😏😛😧🖐 🤧🤑😴😨🤭😕💀😹🥳👿🤒😬😭😕😿🤏🤧💩😷🤘🥱🙄🤞👆😟😮"
Difficulty : Very Easy
Author : 4lex1
うーん、色々試したけどわからんなー、と思っていたら、途中で下記ファイルが追加された。
Added a file with the same emoji string to avoid issues arising from copy-paste.
emojigram.txt
🥳💀😇😜💩😩😫😺😎🤑😞🤯😭😕😿😽🤢👹😱😠😏😛😧🖐🤧🤑😴😨🤭😕💀😹🥳👿🤒😬😭😕😿🤏🤧💩😷🤘🥱🙄🤞👆😟😮
別にヒントではないな。
絵文字からdecodeするライブラリは沢山あるので、結局どのライブラリを使っていいかわからんな?というところで競技終了。
The idea of this challenge was to make you write a small python program that could decode the encrypted emoji encoded text
とのこと。スクリプトを見るとemojicode
というのを使うのが正解だった様子。うーん、コーディングよりどのライブラリを使うべきかがわからなかったので、もう少し使うライブラリのヒントが欲しかったな。
import emojicode emoji = "🥳💀😇😜💩😩😫😺😎🤑😞🤯😭😕😿😽🤢👹😱😠😏😛😧🖐🤧🤑😴😨🤭😕💀😹🥳👿🤒😬😭😕😿🤏🤧💩😷🤘🥱🙄🤞👆😟😮" print(emojicode.decrypt(emoji))
実行結果
$ pip install emojicode $ python solve.py shaktictf{youhavedecodedsomeseriousemojizz}
Wooooww [Easy]
Some terrorists implanted a spy microphone in our office and tried sending some important project details to their country. The ENIAC programmers caught that and we need your help to extract the secret message.
Flag format : shaktictf{STRING}
Author : v1Ru5
findit.mp3
が配布されます。
$ file findit.mp3 findit.mp3: Audio file with ID3 version 2.4.0, contains:MPEG ADTS, layer III, v1, 64 kbps, 44.1 kHz, Stereo
聞いてみると、チップとデールみたいな高い笑い声と、ダイヤルアップ系音声、モールス信号っぽい音声、効果音?だった。
解けてる人が多いので、もしかしたらonlineツールがあるかもしれないが、ツール探す系ゲームになりそう&時間かけるのももったいないので後でwriteup見る。
Ignore other tones and decode the morse part of the mp3 file to get the flag.
ということで、モールス信号部分が本命だった様子。音声のモールス信号の解読には
これを使って解いているwriteupが多かった。便利なツールをまた一つ知れたぞ。
モールス試飲号部分だけ抜き出したりするのが面倒だったので、そのままファイルを突っ込んだけど、細部がうまくデコードできなかったので、ちゃんと切り出して突っ込んだ。
TLOLM0RS3I5F UNN
意味の有りそうな部分を抜き出して、答えは
LOLM0RS3I5FUN (LOL Morse is fun)
Findme [Medium]
OSINT is popular these days. Kay hid your flag in a social networking website. Go get your flag.
Author : 4lph4
OSINT問題だ!username.txt
が配布されます。
Username: (2c1743a391305fbf367df8e4f069f9f9) + "x86" + (987bcab01b929eb2c07877b224215c92) Username didn't work? Try and try. But don't come and "bash" me.
ハッシュっぽかったので、オンラインのhashデータベースで検索したら出た。
2c1743a391305fbf367df8e4f069f9f9
: md5, alpha987bcab01b929eb2c07877b224215c92
: md5, beta
ということで、usernameは alphax86beta
もしくはαx86β
?
twitter, facebook, instagram, ticktock?, pinterest, youtube,...あたりを探しいてみたけど見つからず。
TeamShaktiのwriteupによると、
Online OSINT tools can be used to find the social networking websites where an user account with the given username exists
とのこと。
このnamehackerというサイトが使えるらしい。
早速使ってみると
なるほど?!すでに使われているサービスが赤く表示されるのか。もともとは「このusername使えますか」というサービスっぽい。これはいろんなSNSを手当り次第試す必要がなくていいな👍
で、今回怪しいと思ったハンドルネームは、Tumblr
,Reddit
,Badoo
の3津で使われていたので、これらだけ調べればOK。
Tumblrのアカウントを持っていなかったので、どうやってユーザー検索するのかいまいちわからなかったのだけど、とりあえずアカウントを作って、自分のプロフィールを表示させてみて、pathの作りを理解して、
https://www.tumblr.com/blog/view/alphax86beta
にアクセスしたらflagが出た👍
10010101 [Medium]
The story of initial six programmers is not over with them. They are going to recruit a team of fifty scientists to continue working on ENIAC. There are several spots for all of us and for that we need to solve this puzzle.I tried most of the conversions, but this seems to be a different language. I think the text file has something to do with the password of the zip file.
Author : v1Ru5
flag.zip
とtrythis.txt
が配布されます。
111111111100100010101011101011111110101111111111011011011011000001101001001001011111111111111001010011000000000000000000000000000000000000000000000000000000001010010000000000000000000000000000000000000000000001010111110010100000000000000000000000000010101111111111111110010100111111111111111111100101001011001010000000000000000000001010011111111110010100100000000000000000000000000000000000010101111111111111001010
flag.zipはpassword付き。
$ unzip flag.zip Archive: flag.zip [flag.zip] flag.txt password: skipping: flag.txt incorrect password
問題文から、[1,0]
の羅列がpasswordの鍵を握っているらしい。
取り組もうかと思ったけど時間切れでした。CyberChefに突っ込んでみます。binaryから戻すやつとかやってみたけど成果なし。[1,0]
をタブとスペースに変換してwhiitespace言語のdecoderに突っ込んでみたけど、こちらも成果なし。モールス信号にしても区切りが無くて長過ぎる。
Team-shaktiのwriteupによると、Spoon Languageというのが使われているらしい。
Decoderはこちら。
https://www.dcode.fr/spoon-language:tiitle
Spoon is a minimalist programming language strongly inspired by Brainfuck and composed only of 0 and 1.
ふむふむ。[1,0]
のデータが出てきたら、spoon languageを疑うのも今後選択肢に入れるように使用。
ここに[1,0]
の文字列を突っ込むと、decodeされた。
r4diapErlMan
これがflag.zipのパスワード。パスワードを入れると回答され、flag.txtが出現した。
shaktictf{yEsSsSssssSSS...Sp0oNNn!}
感想
Misc、どれも一応目は通してみたものの、時間が限られている中でもじっくり取り組みたい問題が特に見当たらなかったため、結局解いていませんでした。mp3の問題やemojiの問題も、なんとなくあたりはつくものの、ツールを探すだけ&そのための時間が膨大にかかりそうって感じだったので潔く諦めた。
この選択は終わってみたら結構良かったかなという感じ。一応復習したら更新しよう。
最後に追加されてた暗号化zip問題はちょっと面白そうだったな。全然時間なくて見れなかったけど。
-> 復習した。どれも結局ツールを知っているか、探せるか問題という感じだったので、今回は知らなければすぐ他の問題に映る、というのが正解だったかな。でも復習してみて、特にOSINTのnamehacker
は全然知らなかったけどかなり便利そうだったし、他のツールや暗号も知っておいて損はないので復習できてよかった👍