インストール手順の通りにインストールいただいた後に、以下の順序でソフトウェアを起動してください。
- Bad Todo List(Docker)を起動する
- Burp Suiteを起動する
- Burp SuiteからChromiumを起動する
- Chromiumにて、https://todo.example.jp/ にアクセスする
この後の手順は以下となります。
- サイトを一通り巡回する
- 会員登録、Todo登録などを実際にやってみる
- 画面一覧表を作る
- ウェブ健康診断仕様などを用いて診断する
- 報告書を作成する
- 報告書作成
- 診断後の後始末
概要は、拙著「安全なWebアプリケーションの作り方 第2版」の7章を参照ください。
高品位の脆弱性診断を実施するには、罠ページを実際に作成して、受動的攻撃が成立するかどうかを確認する必要が生じます。罠ページはローカルに作成することもできますが、できるだけ本番に近い環境を用意する意味で、罠ページ用の区画を用意しました。
コンテナ環境の www/html/trap/ フォルダに環境を用意してあります。ここに設置したファイルは、実習環境トップの「罠サイト(中身は実習にて作成)」からアクセスすることができます。
Nginxのキャッシュがウザい場合がよくあります。キャッシュを削除するには以下のスクリプトが利用できます。
PS C:badtodo> .\scripts\delcache.ps1
C:badtodo> .\scripts\delcache.bat
$ ./scripts/delcache.sh
コンテナを維持したままデータを初期化するには、以下のスクリプトが利用できます。
PS C:badtodo> .\scripts\init.ps1
C:badtodo> .\scripts\init.bat
$ ./scripts/init.sh
Bad Todo Listはウェブ健康診断仕様を網羅するように作成されており、ウェブ健康診断仕様の(A)~(M)の大項目はすべて入っています。小項目の中には該当しないものもありますが、できるだけ多くの項目が入れてあります。これがヒントになります。
SSRF(Server Side Request Forgery)脆弱性を試す攻撃先として、以下のホストが利用できます。こちらは、外部からは直接アクセスできない設定になっています。
- internal.example.jp
Adminerを使って、データベースの中身をカンニングすると、脆弱性の確認がしやすくなります。完全なブラックボックステストで敢えて頑張りたい人は、この限りではありませんw
MySQLのクエリーログは、badtodo-dbコンテナの下記のファイル名で保存されます。
/var/lib/mysql/query.log
クエリ文字列 rnd は乱数文字列が入っていますが、アプリ側で利用はされておらずキャッシュバスターとして使われています。診断対象とする必要はありません。キャッシュバスターの意味については徳丸本2版の4.15.2節「キャッシュからの情報漏洩」中の「◆ URLに乱数値を付与する方法」を参照ください。