WEBサイトの脆弱性学習に使えるOWASP Mutillidae IIのローカル環境での構築と簡単な使い方の紹介
【追記】
vagrantを立ち上げてすぐにphpmyadmin操作できるように、mutillidae_deploy.shにphpmyadmin/config.inc.php設定ファイルの書き換え処理を追加しました。
===========================================
最近WEBアプリのセキュリティについて勉強しているのですが、今回は実際に手元のローカル環境で手を動かしながら脆弱性を学ぶことができるOWASP Mutillidae IIというWEBアプリを紹介します。WEBアプリのソースは下記のサイトから配布されています。
https://sourceforge.net/projects/mutillidae/sourceforge.net
OWASP Mutillidae IIのローカル環境への構築方法
vagrantで仮想マシンを立ち上げる
OWASP Mutillidae IIアプリは、LAMP環境で動作するのですが、ゼロからLAMP環境を構築するのは少し面倒なのでVagrantfileを作りました。
vagrant up
を実行すれば、OWASP Mutillidae IIアプリのインストールされたvirtual machineがローカル環境上に立ち上がります。vagrantのインストール方法はWEB上にたくさん掲載されているので別サイトで確認してください。
Mutillidae用のデータベースを設定する
vagrant upで仮想マシンが立ち上がった後は、
http://192.168.33.10/mutillidae/ で仮想マシンにブラウザからアクセスします。
下記の画面が表示されるので、"setup/reset the DB"のリンクをクリックすると、
また下記の画面が表示されるので、OKをクリックすれば、Mutillidae用のデータベースが仮想マシンのMySQL上に構築されます。
HTTPS接続の有効化
デフォルトではMutillidaeとはHTTPで通信を行います。ただ、HTTPS通信に関する脆弱性などの勉強をしたいときにはHTTPSを有効化する必要があります。上記のVagrantfileでは、仮想マシン側でHTTPS通信が出来るようになる設定をしているので、MutillidaeアプリでもHTTPS通信をするように設定させます。
下記URLにアクセスして、
http://192.168.33.10/mutillidae/
下記画面のEnforce SSLをクリック。
自己証明書なので、下記のような警告画面が出ると思いますが、無視して先に進めます。(Chromeであれば、Proceed to 192.168.33.10 (unsafe)をクリック)
そうすると、HTTPSが有効になります。
OWASP Mutillidae IIの簡単な使い方
OWASP Top 10とは、ウェブサイトでよく見られる脆弱性のTop10を世界中のセキュリティの専門家がまとめて公表したものです。
Category:OWASP Top Ten Project - OWASP
数年ごとに内容を見直しているようで、OWASP Top 10(2010), OWASP Top 10(2013)などがあります。
例えば、OWASP Top 10(2017)のA1 - Injection(SQL)の内容を確認したい場合は、左側のメニューから順番に階層構造をたどって目的の脆弱性のデモ画面のリンクをクリックします。
このような感じで各機能の脆弱性を実際に自分の目で確かめながら確認することが出来ます。下記は、入力したHTMLタグ(br)がそのまま出力の際に処理されてしまっている例です。