見出し画像

#107 OSWE

OSWEを受験しました。先ほど、レポートを提出してあとは結果を待つのみです。

※合格でした

9月末から2ヶ月ほど、コツコツと勉強してきました。Web開発のバックグラウンドがあるので、内容はそれほど難しく感じませんでしたが、調査の手法やPoCの作成などかなり勉強になりました。ラボもなかなか歯応えがあって面白かったです。

忘れないうちに、受験記を残しておきます。

試験準備

テキストの勉強

1ヶ月ほどかけて、テキストを読み込みました。テキストの章ごとにターゲットとなるWebアプリが用意されていて、自分の手でデバッグしながら学ぶことができます。練習問題とExtra Milesと呼ばれるチャレンジ問題も全て解いて、PoCを作成しました。

ラボ環境

解答が用意されていないラボ環境は3つ用意されていて、ホワイトボックス/ブラックボックスそれぞれの手法を試せます。全て攻略するのに1ヶ月ほどかかりました。試験の演習という位置づけですが、実際の試験と比べてやや易しい印象でした。

OSSの脆弱性ハンティング

加えて、現実に近い形で診断の練習をしたいと思い、OSSで脆弱性ハンティングもやってみました。Webアプリで、脆弱性がありそうなCMSやプロジェクト管理アプリなどをターゲットにしました。結果的に、SQLインジェクションとOSコマンドインジェクションを発見してIPAに報告までできたので、満足です!CVE欲しい!

直前の準備

勉強しながら、grepするリストや確認すべき点、再利用できるコードなどを少しずつ集めて、チートシートを作っていたので、安心して試験に臨めました。デバッガの設定方法や言語ごとの攻撃手法など、主にテキストで学ぶ内容をまとめておくと困ったときに確認できるのでよいです。

試験

試験では、Webアプリケーションが2つ用意されていて、それぞれ認証バイパス(35点)、任意コード実行(15点)という配点になっています。85点以上で合格です。

試験時間は、48時間+レポート提出まで24時間なので、3日ほどかかります。金曜日に休みをとって、朝9時に開始しました。

試験中は、PCの画面とWebカメラの映像が監視されます。OSCPのときもそうでしたが、外部モニターの画面がうまく共有できず、手間取ったのちノートPCの画面のみで挑むことになりました。

タイムライン

2023-12-09 08:45 事前準備のため試験監視ツールに接続
2023-12-09 09:15 開始 Webアプリ2のほうが慣れてる言語で簡単そう…
2023-12-09 12:00 Webアプリ2の認証バイパス(35点)
2023-12-09 18:00 Webアプリ1に切り替え
2023-12-09 22:00 Webアプリ1の認証バイパス(70点)
2023-12-10 01:30 Webアプリ1の任意コード実行(85点)
2023-12-10 03:00 就寝
2023-12-10 08:00 起床
2023-12-10 12:00 Webアプリ2の任意コード実行 (100点)
2023-12-10 18:00 レポート書き始める
2023-12-11 00:00 就寝
2023-12-11 07:30 起床
2023-12-11 08:45 試験終了

最終的に、27時間ほどで100点まで到達できました!ラボなどと比べてちょっと難しかったので、途中焦りましたが、粘りに粘って攻略しました。時間が長い分、かなり体力を使いましたが、任意コード実行を達成したときの喜びはひとしおです。ギャンブルと同じぐらいの脳内麻薬が出ていると思います。


レポート

試験が終わったら、レポートを提出しなければいけません。レポートのフォーマットは、公式のものを使いました。

公式のフォーマットを参考に、試験課題の条件を満たすように脆弱なコードのスクリーンショット、local.txt・proof.txtの内容、PoCコード、攻撃の手順などを丁寧に解説しました。54ページほどの大作になっています。


まとめ

結果が来るまでは大きなことは言えませんが、さらに経験を積んで安全なアプリ構築に役立てていきたいです。

OSWEが取れても、まだ、OSED、OSEPもありますね!
なんか、年末まで20%OFFになってるなぁ…

EOF

この記事が気に入ったらサポートをしてみませんか?