ニシキヘビってかわいいよね、実際みたことないけど。

無職がいよかん国でプログラミングとかの備忘録を書いてます。 一日一食たまごかけごはん。

DVWAのセットアップ

DVWAは脆弱性を体験できるWebアプリケーションです。
Damn Vulnerable Web Applicationの略です。
めちゃくちゃ脆弱なウェブアプリ、火の玉直球な名前ですね。

実際のコードを見て勉強したくなったので、探してたらありました。
環境構築した時のメモ書き。

環境はUbuntu17.10 Desktop on VirtualBox 5.2

まずはGitHubからダウンロード

github.com

殺る気あふれるアイコン。

次に必要なパッケージをダウンロード
以下、コマンドはすべてroot権限で実行

apt install apache2 mariadb-server php php-mysql php-gd

READMEにも書かれている通り、実ネットワークとはNAT接続を行う仮想環境上に環境構築することを推奨していますが、 別にKali Linuxがあるなどで他ホストから攻撃する場合は、ホストオンリーアダプタを使うか、Apacheファイアウォールの設定で特定ホスト以外の通信を拒否するようにしましょう。 事故が怖いので。

続いてデータベースのセットアップ

systemctl start mysql  # 念の為
mysql -u root -e "CREATE DATABASE IF NOT EXISTS dvwa;"
mysql -u root -e "GRANT ALL ON dvwa.* TO dvwa@localhost IDENTIFIED BY 'p@ssw0rd';"
mysql -u root -e "FLUSH PRIVILEGES;"  # いらなかったかも


パッケージをApacheルートディレクトリ以下に展開し、名前を簡単にする

unzip ./DVWA-master.zip -d /var/www/html
mv /var/www/htmlDVWA-master /var/www/html/dvwa

localhost/dvwa/setup.phpにアクセスするとこんな表示が出る。 f:id:nyanmao:20171108233742p:plain

指示通りconfigをコピー、ついでにdvwaのルートに移動する。

cd /var/www/html/dvwa
cp config/config.inc.php.dist config/config.inc.php

データベースのユーザー名を変更
MariaDBだとrootログインできない

sed "s/'root';/'dvwa';/1" -i config/config.inc.php

再度localhost/dvwa/setup.phpにアクセスすると、設定画面に移動することができる。 f:id:nyanmao:20171108232436p:plain 画像は修正後のもの。

ステータスが赤いところを修正する。

httpサーバが書き込むフォルダとファイルの権限変更

chown www-data:www-data hackable/uploads
chown www-data:www-data external/phpids/0.6/lib/IDS/tmp/phpids_log.txt

PHP設定ファイルがあるディレクトリへ移動し、PHPの設定を変更
エラー表示とPHP function allow_url_includeを有効にする

cd /etc/php/7.1/apache2
sed 's/display_errors = Off/display_errors = On/1' -i php.ini
sed 's/allow_url_include = Off/allow_url_include = On/1' -i php.ini

https://www.google.com/recaptcha/admin/createより、reCAPTCHAの設定を行い、 キーを/var/www/html/dvwaconfig/config.inc.phpにコピペ。
$DVWA[ 'recaptcha_public_key' ]にSiteKeyを、 $DVWA[ 'recaptcha_private_key' ]にSecretKeyを代入する。

サーバの再起動

systemctl restart apache2

ブラウザを更新して、ステータス表示がすべて緑になったら、Create/Reset Database ボタンを押す。

ログイン画面に飛ぶので、usernameはadmin、passwordはpasswordでログインできることを確認したら準備完了。

お疲れ様でして。

参考というかほぼコピペ

GitHub - ethicalhack3r/DVWA: Damn Vulnerable Web Application (DVWA)