AWS(EC2)にXAMPPで脆弱テストサーバのDVWAをインストールしてみる

最近AWS WAFを触る機械が増えたので、WebACLブロックテスト用にEC2の環境でDVWA(Damn Vulnerable Web Application)をデプロイしましてので、デプロイ方法を共有します。

インストール環境は以下のとおりです。

・Amazon Linux2 (t2.medium)

・XAMPP 7.2.26 / PHP 7.2.26

・DVWA v1.10

DVWA(Damn Vulnerable Web Application)とは

DVWAとは、Webアプリケーションの脆弱性を再現できるWebアプリケーションです。

クロスサイトスクリプティングや、SQLインジェクションなど、様々な脆弱性が含まれています。

WAFのテスト用や、脆弱性があるソースコードの学習用などに使用されています。

今回は、AWS WAFにCSCさんのAWS Marketplace: Cyber Security Cloud Managed Rules for AWS WAF -HighSecurity OWASP Set-を使って正常にブロックするかどうかを検証します。

DVWAのデプロイ

本手順は、Macで行っております。

Windowsでも問題ございませんので、適意読み替えてください。

EC2のデプロイ

任意のアカウント、VPCにデプロイを行ってください。

本手順は、AmazonLinux2で行いましたが、Windows環境でも問題ございません。

適意任意のインスタンスを準備してください。

インスタンスをデプロイ後、パッケージを最新にしておきます。

sudo yum update -y

XAMPPのインストール

続いて、DVWAを公開するWebサーバと、データベースをデプロイします。

個別にインストールしてもいいですが、今回は簡略化するためにオールインワンのXAMPPを使用します。

XAMPP公式サイトからLinux用のインストールファイルをダウンロードします。

バージョンは、お好みのバージョンをお選びください。

ダウンロードしたインストールファイルを任意のフォルダへアップロードします。

私は、CyberDuckでSFTP経由でホームフォルダに移動しました。

アップロードしたファイルの権限を変更します。

chmod 755 xampp-linux-x64-7.2.26-0-installer.run

続いてインストーラを実行します。

./xampp-linux-x64-7.2.26-0-installer.run

実行すると以下のような画面になりますので、yで実行をしていきます。

インストールには数分かかりますので、しばらくお待ち下さい。

----------------------------------------------------------------------------
Welcome to the XAMPP Setup Wizard.

----------------------------------------------------------------------------
Select the components you want to install; clear the components you do not want 
to install. Click Next when you are ready to continue.

XAMPP Core Files : Y (Cannot be edited)

XAMPP Developer Files [Y/n] :y

Is the selection above correct? [Y/n]: y

----------------------------------------------------------------------------
Installation Directory

XAMPP will be installed to /opt/lampp
Press [Enter] to continue:

----------------------------------------------------------------------------
Setup is now ready to begin installing XAMPP on your computer.

Do you want to continue? [Y/n]: y

----------------------------------------------------------------------------
Please wait while Setup installs XAMPP on your computer.

 Installing
 0% ______________ 50% ______________ 100%
 ########################################
#

----------------------------------------------------------------------------
Setup has finished installing XAMPP on your computer.

 

インストールが完了したらパブリックDNSにアクセスして、テスト画面が表示されることをご確認ください。

DVWAのインストール

Webサーバ、DBサーバの準備ができましたので、DVWAのインストールを行います。

インストーラをダウンロードします。

wget https://github.com/ethicalhack3r/DVWA/archive/master.zip

公式サイトからダウンロードしていただき、アップロードしてもらってもかまいません。

インストーラを展開します。

unzip master.zip

次に、展開したフォルダをXAMPPのドキュメントルートに移動します。

sudo mv DVWA-master/ /opt/lampp/htdocs

次にドキュメントルートの権限を変更します。

sudo chmod 775 /opt/lampp/htdocs/

続いて、所有権もec2-userに変更します。

sudo chown root:ec2-user /opt/lampp/htdocs/

フォルダ名を変更します。フォルダ名はアクセスURLになりますので、シンプルにdvwaに変更します。

sudo mv /opt/lampp/htdocs/DVWA-master/ /opt/lampp/htdocs/dvwa

この段階でDVWAにアクセスすると、以下のメッセージが表示されますので、configファイルを作成します。

アクセスするURLは以下の通りです。グローバルアドレスはxxxに変更しております。

http://ec2-xxx-xxx-xxx-xxx.ap-northeast-1.compute.amazonaws.com/dvwa

ドキュメントルートに移動します。

cd /opt/lampp/htdocs/dvwa/

configファイルをコピーして作成します。

cp config/config.inc.php.dist config/config.inc.php

コピーしたconfigファイルを編集します。

DB接続用のパスワードが入ってしまっておりますので、空白にします。

DVWA[ ‘db_password’ ]の値を消去してください。

<?php

# If you are having problems connecting to the MySQL database and all of the variables below are correct
# try changing the 'db_server' variable from localhost to 127.0.0.1. Fixes a problem due to sockets.
#   Thanks to @digininja for the fix.

# Database management system to use
$DBMS = 'MySQL';
#$DBMS = 'PGSQL'; // Currently disabled

# Database variables
#   WARNING: The database specified under db_database WILL BE ENTIRELY DELETED during setup.
#   Please use a database dedicated to DVWA.
#
# If you are using MariaDB then you cannot use root, you must use create a dedicated DVWA user.
#   See README.md for more information on this.
$_DVWA = array();
$_DVWA[ 'db_server' ]   = '127.0.0.1';
$_DVWA[ 'db_database' ] = 'dvwa';
$_DVWA[ 'db_user' ]     = 'root';
$_DVWA[ 'db_password' ] = '';

# Only used with PostgreSQL/PGSQL database selection.
$_DVWA[ 'db_port '] = '5432';

# ReCAPTCHA settings
#   Used for the 'Insecure CAPTCHA' module
#   You'll need to generate your own keys at: https://www.google.com/recaptcha/admin
$_DVWA[ 'recaptcha_public_key' ]  = '';
$_DVWA[ 'recaptcha_private_key' ] = '';

# Default security level
#   Default value for the security level with each session.
#   The default is 'impossible'. You may wish to set this to either 'low', 'medium', 'high' or impossible'.
$_DVWA[ 'default_security_level' ] = 'impossible';

# Default PHPIDS status
#   PHPIDS status with each session.
#   The default is 'disabled'. You can set this to be either 'enabled' or 'disabled'.
$_DVWA[ 'default_phpids_level' ] = 'disabled';

# Verbose PHPIDS messages
#   Enabling this will show why the WAF blocked the request on the blocked request.
#   The default is 'disabled'. You can set this to be either 'true' or 'false'.
$_DVWA[ 'default_phpids_verbose' ] = 'false';

?>

config編集後、DVWAのwebアプリケーションにアクセスしてください。

「Create/Reset Database」を選択してデータベースを作成してください。

以下の画面が表示されましたら正常にデータベース作成が完了です。

エラー表示が出る場合は一度、XAMPPを再起動します。

sudo /opt/lampp/lampp restart

再起動後、もう一度データベースを作成してください。

正常に作成できましたらログインを行ってください。

初期ログインIDは「admin」初期パスワードは「password」です。

ログイン後、以下の画面が表示されましたらインストール完了です。

使い方についてはまた別途記事を書きたいと思います!

WAFのテストなどに是非ご活用ください!
誰かの参考になれば幸いです。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です