前回までは、以前に行った OWASP ZAP の自動脆弱性スキャンの結果について、リスク高、中について、分析と対策をやってきました。
今回は、CTF(Capture The Flag)に入門してみたいと思います。
CTF とは、セキュリティにおける専門知識や技術を使って、隠されている Flag(旗、答え、文字列)を見つける競技です。競技と言っても、チュートリアル的な入門レベルから、賞金が設定される本格的な大会まであるようです。
国内で運営されている CpawCTF というサイトがあります。アカウントを作ると、日本語で、無料で、自分のペースで、CTF に挑戦できます。今回は、実際に CpawCTF にサインアップして、始めてみたいと思います。
それでは、やっていきます。
はじめに
「セキュリティ」の記事一覧です。良かったら参考にしてください。
・第2回:Ghidraで始めるリバースエンジニアリング(使い方編)
・第3回:VirtualBoxにParrotOS(OVA)をインストールする
・第4回:tcpdumpを理解して出力を正しく見れるようにする
・第5回:nginx(エンジンエックス)を理解する
・第6回:Python+Flask(WSGI+Werkzeug+Jinja2)を動かしてみる
・第7回:Python+FlaskのファイルをCython化してみる
・第8回:shadowファイルを理解してパスワードを解読してみる
・第9回:安全なWebアプリケーションの作り方(徳丸本)の環境構築
・第10回:Vue.jsの2.xと3.xをVue CLIを使って動かしてみる(ビルドも行う)
・第11回:Vue.jsのソースコードを確認する(ビルド後のソースも見てみる)
・第12回:徳丸本:OWASP ZAPの自動脆弱性スキャンをやってみる
・第13回:徳丸本:セッション管理を理解してセッションID漏洩で成りすましを試す
・第14回:OWASP ZAPの自動スキャン結果の分析と対策:パストラバーサル
・第15回:OWASP ZAPの自動スキャン結果の分析と対策:クロスサイトスクリプティング(XSS)
・第16回:OWASP ZAPの自動スキャン結果の分析と対策:SQLインジェクション
・第17回:OWASP ZAPの自動スキャン結果の分析と対策:オープンリダイレクト
・第18回:OWASP ZAPの自動スキャン結果の分析と対策:リスク中すべて
・第19回:CTF初心者向けのCpawCTFをやってみた ← 今回
CpawCTFの始め方
まず、以下の CpawCTF のサイトにアクセスします。
CpawCTFにサインアップ
すると、以下のような画面になります。右上の「SignUp」をクリックすると、ScreenName(表示名)、UserID、Password、Password (again) の入力項目が表示されます。
ScreenName は重複しても大丈夫そうだと思ったのですが、既に使われてると言われてダメでした。ScreenName、UserID はどちらもユニークな名前を入力する必要がありそうです。
無事にサインアップが完了すると、以下のような画面になります。まずは、チュートリアル的な感じで、Level 1 があります。Level 2 と Level 3もあって、それが完了すると、次のステップがあるようです。
CpawCTFのLevel 1
ここで CpawCTF の問題の答えを記載することはありませんが、最初の Test Problem はテストということで、雰囲気をお伝えするのは大丈夫のようです。
Level 1 の最初の問題は、以下のように、答えが書かれていて、それを「flag」と書かれているテキストボックスに入力して、Submit できるかをテストする内容となっています。
正しい答えを入力して、Submit できると、順位?Submit出来た順?を下の方に表示されます。Q1 については、20035番目の正しい Submit だったようです。
以下、結果だけですが、Submit の順位を書いておきます。
問題 | タイトル | 順位 |
---|---|---|
Q1 | [Misc] Test Problem | 20,035 |
Q6 | [Crypto] Classical Cipher | 17,031 |
Q7 | [Reversing] Can you execute ? | 11,390 |
Q8 | [Misc] Can you open this file ? | 12,329 |
Q9 | [Web] HTML Page | 13,922 |
Q10 | [Forensics] River | 12,903 |
Q11 | [Network]pcap | 11,964 |
Q12 | [Crypto]HashHashHash! | 12,487 |
Q14 | [PPC]並べ替えろ! | 11,414 |
CpawCTFのLevel 2
Level 1 の問題に全て正解すると Level 2 が出現します。
同様に、以下、Submit の順位を書いておきます。Q18 をクリアしたときに、Level 3 が出現しました。
問題 | タイトル | 順位 |
---|---|---|
Q13 | [Stego]隠されたフラグ | 7,657 |
Q15 | [Web] Redirect | 8,018 |
Q16 | [Network+Forensic]HTTP Traffic | 6,841 |
Q17 | [Recon]Who am I ? | 7,518 |
Q18 | [Forensic]leaf in forest | 6,933 |
Q19 | [Misc]Image! | 5,773 |
Q20 | [Crypto]Block Cipher | 5,624 |
Q21 | [Reversing]reversing easy! | 4,995 |
Q22 | [Web]Baby's SQLi - Stage 1- | 6,061 |
Q28 | [Network] Can you login? | 4,763 |
CpawCTFのLevel 3
Level 2 を取り組んでる途中で Level 3 が出現しました。あ、Level 3 の最初の問題をクリアすると Level 4 が出現しました。
同様に、以下、Submit の順位を書いておきます。
問題 | タイトル | 順位 |
---|---|---|
Q23 | [Reversing]またやらかした! | 2,694 |
Q24 | [Web]Baby's SQLi - Stage 2- | 4,409 |
Q26 | [PPC]Remainder theorem | 3,461 |
Q29 | [Crypto] Common World | 2,387 |
Level 4 というタイトルは出ましたが、Level 3 を全てクリアしても、問題は出ませんでした。現在は、Level 3 までのようです。
ランキング
ランキングを表示しているところがあったので、貼っておきます。1735位ということでした。
CpawCTFをやってみた感想
次は、CpawCTF2?があるようです。ぜひやってみたいと思います。
今回、初めて、CTF に挑戦したのですが、この CpawCTF は、とてもオススメできます。
それなりに時間がかかりましたが、私の場合は、非常に得るものが多かった、という印象です。
例えば、Wireshark は、それなりに、これまでも使ってきたつもりでしたが、こんな使い方もあるんだ、と思うことや、RSAの仕組みをちゃんと理解できたり、初めてのファイル形式をしれたりと、とても良い機会になりました。
少し残念だったのは、Web に、答えがありすぎて、関連することを検索しただけで、解き方が分かるキーワードが目に入ってしまう、ということでした。あと、最後の RSA の問題は、ちょっとモヤモヤした問題だったので、正しい解説が知りたいところでした。
以上、感想でした。
おわりに
今回は、CTF の入門として、CpawCTF に挑戦してみました。非常に楽しかったです。
次回は、とりあえず、CpawCTF2 を見てみます。
今回は、CpawCTF のロゴを使わせていただきました。ありがとうございます。
最後になりましたが、エンジニアグループのランキングに参加中です。
気楽にポチッとよろしくお願いいたします🙇
今回は以上です!
最後までお読みいただき、ありがとうございました。