TORIPIYO DIARY

recent events, IoT, programming, security topics

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を作りました。

上記2個のファイルを配置したディレクトリ上で、

vagrant up

を実行すれば、OWASP Mutillidae IIアプリのインストールされたvirtual machineがローカル環境上に立ち上がります。vagrantのインストール方法はWEB上にたくさん掲載されているので別サイトで確認してください。

Mutillidae用のデータベースを設定する

vagrant upで仮想マシンが立ち上がった後は、
http://192.168.33.10/mutillidae/ で仮想マシンにブラウザからアクセスします。

下記の画面が表示されるので、"setup/reset the DB"のリンクをクリックすると、
f:id:ha107chan:20170816123804p:plain

また下記の画面が表示されるので、OKをクリックすれば、Mutillidae用のデータベースが仮想マシンMySQL上に構築されます。
f:id:ha107chan:20170816124134p:plain

HTTPS接続の有効化

デフォルトではMutillidaeとはHTTPで通信を行います。ただ、HTTPS通信に関する脆弱性などの勉強をしたいときにはHTTPSを有効化する必要があります。上記のVagrantfileでは、仮想マシン側でHTTPS通信が出来るようになる設定をしているので、MutillidaeアプリでもHTTPS通信をするように設定させます。

下記URLにアクセスして、
http://192.168.33.10/mutillidae/

下記画面のEnforce SSLをクリック。
f:id:ha107chan:20170816124506p:plain

自己証明書なので、下記のような警告画面が出ると思いますが、無視して先に進めます。(Chromeであれば、Proceed to 192.168.33.10 (unsafe)をクリック)
f:id:ha107chan:20170816124700p:plain

そうすると、HTTPSが有効になります。
f:id:ha107chan:20170816125144p:plain

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)の内容を確認したい場合は、左側のメニューから順番に階層構造をたどって目的の脆弱性のデモ画面のリンクをクリックします。
f:id:ha107chan:20170816134022p:plain

このような感じで各機能の脆弱性を実際に自分の目で確かめながら確認することが出来ます。下記は、入力したHTMLタグ(br)がそのまま出力の際に処理されてしまっている例です。
f:id:ha107chan:20170816134445p:plain