毎年アメリカの高校生向けに開催されているPICOCTFというCTFがあります。
まだ、解いてる途中ですが、解けたところまで、解説を行っていきます。
PicoCTF
https://2018game.picoctf.com/news
#Forensics Warmup 1
zipファイルがダウンロードできるので、解凍したファイル内にフラグがある
FLAG
picoCTF{welcome_to_forensics}
#Forensics Warmup 2
ファイルをダウンロードしてそのまま開くとフラグがある
※問題文内にファイルが開けないとあるので、本来はファイルの拡張子を変えるのが意図と思われる
FLAG
picoCTF{extensions_are_a_lie}
#General Warmup 1
ASCIIコードの対応表より対応する文字を割り出す
FLAG
picoCTF{A}
#General Warmup 2
10進数を2進数に変換し、フラグを得る
FLAG
picoCTF{11011}
#General Warmup 3
Warmup 2と同じやり方で算出する
FLAG
picoCTF{61}
#Resources
リンク先のWebページのソースファイル内にフラグがある
FLAG
picoCTF{xiexie_ni_lai_zheli}
#Reversing Warmup 1
該当のファイルを調査するとELFなので、実行するとフラグを得られる
FLAG
picoCTF{welc0m3_t0_r3VeRs1nG}
#Reversing Warmup 2
与えられた文字列をbase64でデコードするとフラグを得られる
FLAG
picoCTF{th4t_w4s_s1mpL3}
#Crypto Warmup 2
与えられた文字列をROT13で変換するとフラグを得られる
FLAG
picoCTF{this_is_crypto!}
#grep 1
与えられたファイルに対して、CTFなどの言葉でgrepするとフラグを得られる
FLAG
picoCTF{grep_and_you_will_find_d66382d8}
#net cat
与えられた接続先にnetcatで接続するとフラグを得られる
FLAG
picoCTF{Netcat_iS_a_NEcESSiTy_669222ddc}
#strings
対象ファイルをstringsコマンドで文字列を抜き出し、その後、CTFなどの言葉でgrepするとフラグを得られる
FLAG
picoCTF{sTrIngs_sAVeS_Time_d3ffa29c}
#pipe
接続すると、文字が出力され続けるので、出力結果をgrepするとフラグを得られる
nc 2018shell3.picoctf.com 44310 | grep pico
FLAG
picoCTF{almoat_like_mario_a13e5b27}
#Inspect Me
Webページのhtml、jsファイル、cssファイルのコメント内にフラグの一部があるので連結させてフラグを得る
FLAG
picoCTF{ur_4_real_1nspect0r_g4dget_e96dd105}
#grep 2
フォルダが複数あるので、再帰的に検索してフラグを得る
FLAG
picoCTF{grep_r_and_you_will_find_556620f7}
#Client Side is Still Bad
Webページのソースを見ると入力された文字列をJavaScriptで比較しているので、その内容がフラグである
FLAG
picoCTF{client_is_bad_9119e9}
#Logon
Webページのログインフォームがあり、
・adminでログインしようとするとadminじゃログインできない旨のメッセージが出力される
・その他のユーザだとログインできるが、フラグが表示されない
なので、なんとかadminでログインを行うことを考える。
Cookieを確認すると、adminのCookieがFalseで設定されているのでTrueに書き換えるとフラグを得られる
FLAG
picoCTF{l0g1ns_ar3nt_r34l_82e795f4}
#Recovering From the Snap
ファイルをFTKImagerで復元すると中にtheflag.jpgがあり、フラグが記載されている
FLAG
picoCTF{th3_5n4p_happ3n3d}
#admin panel
WireSharkで該当のパケットキャプチャを解析すると/login.htmlへのパケット内にpasswordが記載されている
FLAG
picoCTF{p4ssw0rd}
#environ
環境変数を確認(export)するとSECRET_FLAG変数内にフラグが設定されている
FLAG
picoCTF{eNv1r0nM3nT_v4r14Bl3_fL4g_3758492}
#hex editor
猫の画像が与えられるが、画像にはフラグが記載されていないので、stringsコマンドで調査するとフラグを得られる
※題名通り、バイナリエディタを利用してもよい
FLAG
picoCTF{and_thats_how_u_edit_hex_kittos_3E03e57d}
#No Login
Webページに行くと、Flagを出力するボタンがあるが、そのままクリックしてもadminではないので表示できない旨が表示される。Sign In、Sign Out共に未実装なリンクに飛ばされるので、ログインができない。adminである条件が何かを考えるとCookieとなるので、adminというCookieを作成し、フラグを出力するボタンをクリックすると
フラグを得られる
FLAG
picoCTF{n0l0g0n_n0_pr0bl3m_ed714e0e}
#Buttons
最初のWebページはそのままボタンをクリックする。
次のWebページのボタンをクリックすると、2つ目のページに遷移するが、Formが無効になっている旨が表示される。
謎のVideoがうるさい
1ページと2ページを比較すると1ページ目はPOSTしているので、Fidder等を用いて2ページ目もPOSTするとフラグを得られる
FLAG
picoCTF{button_button_whose_got_the_button_dfe8b73c}
#感想
基礎的な力を見る問題が多いので、これが全て解けるとかなりの力を着くはず。高校生向けのため、毎年謎の組織が出てきて、戦うというストーリーもゲームらしく楽しめる解けるいいコンテンツに仕上がっている。