以下の内容はhttps://daisuke20240310.hatenablog.com/entry/cpawctf2より取得しました。


CpawCTF2にチャレンジします(クリア状況は随時更新します)

前回 は、Python の Scapy を使って、ネットワークプログラミングをやってみました。

今回は、以前 やってみた CpawCTF の続きである CpawCTF2 を始めたいと思います。

それでは、やっていきます。

※2024/9/8時点:300ポイントで、382位 / 2575人です

はじめに

「セキュリティ」の記事一覧です。良かったら参考にしてください。

セキュリティの記事一覧
・第1回:Ghidraで始めるリバースエンジニアリング(環境構築編)
・第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をやってみた
・第20回:hashcatの使い方とGPUで実行したときの時間を見積もってみる
・第21回:Scapyの環境構築とネットワークプログラミング
・第22回:CpawCTF2にチャレンジします(クリア状況は随時更新します) ← 今回

CpawCTF2 の公式サイトは以下です。

https://ctf2.cpaw.site/

この記事では、問題に関する紹介は行いますが、解法に繋がる内容は書かないようにいたします。

それでは、やっていきます。

サインアップ

CpawCTF をやった方も、サインアップ(登録)からになります。

上のリンクからトップページにアクセスします。サインアップをクリックします。

トップページ
トップページ

以下の登録画面になるので、赤枠を入力して、Sign up をクリックします。

サインアップ画面
サインアップ画面

これで登録は完了です。

CpawCTF2の概要

Ranking のページを見てみます。

2571人がランキングにいて、トップの方は 3400ポイントで、867人の方が何らかのポイントを取得しています。0ポイントの方が 1704人いるようです。ポイントを取得するのは、かなり難しいようです。

次に、Challenges のページを見てみます。

8個のジャンルがあり、全19個の問題があり、ざっと計算したところ、全ての問題をクリアすると 3250ポイントのようです。2位の方が 3250ポイント、3位の方が 3015ポイントなので、過去に問題変更などがあったということでしょうか。現在は最高でも同率2位までになるようです。

100、150、200、250、300ポイントの問題があります。ポイントの高い問題ほど、難易度が高そうです。

Challengesの画面
Challengesの画面

以下、全19個の問題とポイント一覧です。

No. カテゴリ 問題名 ポイント 状況
1 Web Fragile 150 0%
2 Network prank 100 completed
3 Network HTTPS introduction 100 completed
4 Network Illegal Packets... 300 0%
5 Crypto an apartment 100 0%
6 Crypto easy...? Turing Machine 100 0%
7 Reverse Secret instruction 200 0%
8 Reverse Exec me revenge 100 completed
9 Pwn Blackboard Of Fake1 100 0%(Serverから応答が無い)
10 Pwn Blackboard Of Fake2 300 0%
11 Pwn Chance 250 0%
12 Pwn Name Editor++ 300 0%
13 Forensic Bad Container 300 0%
14 Forensic Trace Behavior 200 0%
15 Stego CCpost 100 0%
16 Stego Random Image 200 0%
17 Misc sumsumsum 100 0%(メンテナンス中?)
18 Misc BrokenBase 150 0%
19 Misc Everyone's power 100 0%

Webカテゴリ

とりあえず、Webカテゴリから見ていきたいと思います。

Webカテゴリは、ウェブサイトの脆弱性を探して、攻撃することでフラグを見つける問題です。

Webカテゴリを選択すると、Fragile という 1問だけがありました。

Fragile

Fragile(壊れやすい、弱い、もろい、割れやすい)を選択すると、問題のウェブサイトのリンクと、答えを提出するフォームがありました。150ポイントなので、100ポイントよりは難しそうです。

Fragileの問題の入り口
Fragileの問題の入り口

問題のウェブサイトのリンクをクリックすると、シンプルなフォームで、テキストを入力して submit するだけの画面になりました。

Fragileの問題
Fragileの問題

フォームに適当な文字列(とりあえず、<script>alert("aa")</script> を入力してみた)を入力すると、それが表示されました。

入力した文字列がそのまま表示された
入力した文字列がそのまま表示された

これ以上の情報はとりあえずは無さそうです。なかなか難しそうです。

壊れやすいというタイトルということは、壊すような攻撃方法が必要なんでしょうか(笑)。

Networkカテゴリ

次に、Networkカテゴリを見てみます。

Networkカテゴリは、pcapファイルからフラグを見つけたり、特定のノードに攻撃を行い、フラグを取る問題です。

3つの問題がありました。

Networkカテゴリ
Networkカテゴリ

prank

先頭の prank という問題を見てみます。zipファイルと、ヒント?の pcapファイルが提供されています。100ポイントの問題です。先ほどの Fragile よりは、やさしそうな印象です。

prankの問題
prankの問題

zipファイルはパスワード付きで開けませんでした。pcapファイルにヒントがあるのかもしれません。

pcapファイルを Wireshark で開いてみると、Telnet の通信データのようです。

※2024/8/25:初クリア

あ、解けた。

prankクリア
prankクリア

やりました!とりあえず、最初の目標の100ポイントをゲットです!

2571位→868位
2571位→868位

HTTPS introduction

もう1つの 100ポイントの問題の HTTPS introduction を見てみます。pcapファイルと、key というリンクをクリックすると、RSA の秘密鍵が表示されました。

HTTPS introductionの問題
HTTPS introductionの問題

こちらも 2ファイルが提供されていることから、少しはやさしそうな問題の印象です。

300ポイントの問題は、おそらく難易度が高そうなので省略します。

※2024/8/25:2個目をクリア

HTTPS introduction も解けました!

HTTPS introductionクリア
HTTPS introductionクリア

100ポイントゲット!計200ポイントです!

868位→580位
868位→580位

Cryptoカテゴリ

Cryptoカテゴリは、脆弱性のある暗号の解読を行ったり、どのアルゴリズムで暗号化してるかを調べる問題などがあります。

Cryptoカテゴリには、100ポイントの問題が2つありました。

Cryptoカテゴリ
Cryptoカテゴリ

Reverseカテゴリ

Reverseカテゴリは、実行ファイルを解析したり、デバッガを使って、フラグを探す問題です。

Reverseカテゴリには、100ポイントの問題が1つと、200ポイントの問題が1つありました。

Reverseカテゴリ
Reverseカテゴリ

Exec me revenge

Exec me revenge という問題です。実行ファイル?が1つ提供されています。

Exec me revengeの問題
Exec me revengeの問題

概要を調べてみました。実行すると、セグメンテーションフォールトになりました。あと、フラグを出力してそうな文字列がありました。

$ $ file exec_me_revenge
exec_me_revenge: ELF 64-bit LSB executable, x86-64, version 1 (GNU/Linux),
statically linked, for GNU/Linux 2.6.32, BuildID[sha1]=27b306d8607f80c9534a01d061d5fac21c157c4e, stripped

$ strings exec_me_revenge_4ba9b20108e56b8d77d8a2dd091c55c6 | grep -i cpaw
cpaw{%s}

$ ./exec_me_revenge_4ba9b20108e56b8d77d8a2dd091c55c6
Segmentation fault

とりあえず、Ghidra で逆コンパイルしてソースを眺めていく感じでしょうか。stripped(シンボル削除)されてるので、なかなか手ごわそうです。Ghidra で逆コンパイルしたソースは 21万行以上ありました。まともには見れません。

タイトルが Exec me revenge なので、セグフォが出ないようにすればいいのかもしれないですね、それなら VSCode でデバッガで見てもいいかもです。

※2024/9/8:3個目をクリア

100ポイントゲット!計300ポイントです!

Pwnカテゴリ

Pwnカテゴリは、プログラムの脆弱性を攻撃してフラグを取る問題です。総合的な知識が求められる場合が多いようです。

Pwnカテゴリには、100ポイントの問題が1つと、250ポイントの問題が1つ、300ポイントの問題が2つありました。

Pwnカテゴリ
Pwnカテゴリ

Blackboard Of Fake1

100ポイントの Blackboard Of Fake1 を見てみます。

バイナリファイル?が1つあるのと、「nc ctf2.cpaw.site 9999」と書かれています。netcatコマンドでしょうか。

Blackboard Of Fake1の問題
Blackboard Of Fake1の問題

とりあえず、バイナリファイルの概要です。

$ file blackboard_1
blackboard_1: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV),
dynamically linked, interpreter /lib/ld-linux.so.2, for GNU/Linux 2.6.24,
BuildID[sha1]=e75589d52a3a8b6970be6a59cf5165c2a2daf4c2, not stripped

$ ./blackboard_1
1. Write on the blackboard
2. See the blackboard
3. clean the blackboard
Please input action number:

サーバから応答が無いので、おそらく、「Blackboard Of Fake1」は出来ないと思います

Web で検索すると、Twitter のコメントで、同じくアクセスできないと言われていた方がいました

Forensicカテゴリ

Forensicカテゴリは、様々なデータの中に隠されているフラグを探し出す問題です。

Forensicカテゴリには、200ポイントの問題が1つ、300ポイントの問題が1つありました。

Forensicカテゴリ
Forensicカテゴリ

Stegoカテゴリ

Stegoカテゴリは、Steganography のことで、音声や画像データに隠されたフラグを探し出す問題です。

Stegoカテゴリには、100ポイントの問題が1つ、200ポイントの問題が1つありました。

Stegoカテゴリ
Stegoカテゴリ

Miscカテゴリ

Miscカテゴリは、分類できない、その他という意味のカテゴリです。

Miscカテゴリには、100ポイントの問題が2つ、150ポイントの問題が1つありました。

試してないですが、sumsumsum は、現在出来ないと、Notice に書かれていました

Miscカテゴリ
Miscカテゴリ

おわりに

今回は、CpawCTF2 に登録して、全19問をざっと見てみました。

まずは、2問解けたので、やれそうな問題からやっていこうと思います。

最後になりましたが、エンジニアグループのランキングに参加中です。

気楽にポチッとよろしくお願いいたします🙇

今回は以上です!

最後までお読みいただき、ありがとうございました。




以上の内容はhttps://daisuke20240310.hatenablog.com/entry/cpawctf2より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14