CTFとは
CTFとは、セキュリティの知識の競う大会で、問題ごとに得点が割り当てられていてその問題を解くと点数が貰えます。1週間や一日など、制限時間があるのでその時間内で獲得した得点できそう大会です。
問題の種類は様々あり、forensics、crypto(暗号)、reverse engineering、web exploitationなどの問題があります。
今回はweb exploitationを中心に紹介ていきます。
inspect me
http://2018shell3.picoctf.com:28831/
上のサイトをご覧下さい。一見なんともないサイトに見えますが、ソースコードを見ると答えらしきものが見えますね。これは答えの一部です。答えになる文字列はほとんどの場合「大会の名前{hogehoge}」のような形式になります。ここでは大会の名前はpicoCTFなので「picoCTF{hogehoge}」になります。
コメントの部分を日本語訳すると、「これは3つに分けられたflag(答え)の1番目です」とかいてあります。つまり同じような文字列をあと二つ見つければいいわけです。
ソースコードをじっくり見てみると、mycss,cssというファイルがあります。これが怪しそうなのでソースコードを見てみると最後の部分に以下のような文字列がありますね。
2つ目がありましたね。先ほどのHTMLをじっくり見るともう1つ答えになりそうなものがもうひとつありますね。myjs.jsというファイルです。開いて見てみるとわかりますが、実は見る必要はありません。最後の部分文字列は空文字です。
ですので得られた2つの文字列を繋げたものが答えです。
常設CTFの問題を解こう
CTFは大抵大会が開催されてる期間しかとくことができません。しかし、常設CTFと言っていつでも問題を解けるようにしてあるサイトがいくつかあります。
そのひとつがpicoCTFです。他にもcpawCTFなどがあります。それらのサイトで試しに解いてみることをオススメします