最近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のテストなどに是非ご活用ください!
誰かの参考になれば幸いです。
Webセキュリティ担当者のための脆弱性診断スタートガイド 第2版 上野宣が教える新しい情報漏えいを防ぐ技術
翔泳社
売り上げランキング: 31,709