DVWA インストール
DVWA (DAMN VULNERABLE WEB APPLICATION)
実践的かつ汎用的な脆弱性コードの例として、DVWA (DAMN VULNERABLE WEB APPLICATION) を取り上げてみます。DVWAの中で合法的に提供された脆弱なアプリケーションを対象に、CodeGuardがどのように保護機能として働くかを確認するための準備です。
DVWAは、PHP/MySQLで構築された、意図的に多くの脆弱性が組み込まれたWebアプリケーションです。現実のWeb脆弱性がシステムをどのように攻撃するか、そして防御スタックがどのように反応するかをテストするための、合法的で現実的な環境を提供することを目的としています。SQLインジェクション、クロスサイトスクリプティング(XSS)、CSRF、ファイルアップロード、そしてブルートフォース(総当り認証)など、様々な脆弱性が含まれており、デフォルトの認証情報(admin/password)でログインして利用を開始できます。
DVWA のインストール方法
正規GithubのREADMEを確認する限り、手っ取り早いインストール方法としては、公式のインストール方法とは別に、 IamCarronさんによって作成された自動インストールスクリプトを使用するインストラクションが有力なオプションとして掲載されています。このスクリプトの作成には多大な労力が費やされているということが、公式からも確認されていますが、インストールに関して予期しないプログラム等がシステムに導入されないか等を含む、専門的かつ一定的な安全性を利用前に確認することが推奨される、と記載があります。これは当然のことであり、何か予期しない悪意のプログラムがインストールされないように注意深く検討をするべきです。今回は短期的な確認を行いたいため、構築時間的に手っ取り早そうな、このインストール方法を試してみます。
DVWA インストール実行
% sudo bash -c "$(curl --fail --show-error --silent --location https://raw.githubusercontent.com/IamCarron/DVWA-Script/main/Install-DVWA.sh)"
インストールコマンドを実行します。
No services need to be restarted.
No containers need to be restarted.
No user sessions are running outdated binaries.
No VM guests are running outdated hypervisor (qemu) binaries on this host.
git is installed!
Downloading DVWA from GitHub...
Cloning into '/var/www/html/DVWA'...
remote: Enumerating objects: 331, done.
remote: Counting objects: 100% (331/331), done.
remote: Compressing objects: 100% (277/277), done.
remote: Total 331 (delta 42), reused 208 (delta 24), pack-reused 0 (from 0)
Receiving objects: 100% (331/331), 935.54 KiB | 26.73 MiB/s, done.
Resolving deltas: 100% (42/42), done.
MariaDB service is already enabled.
MariaDB service is already running.
Default credentials:
Username: root
Password: [No password just hit Enter]
途中でmysql/MariaDBユーザのUser名、パスワードの入力が求められますが、MariaDBで事前にSQLユーザの作成などをする必要はありません。入力無しにすべてEnterで先に進めます。
一つのコマンドだけで、エラー無くインストールと起動が完了しました。
http://localhost/DVWA
によりアクセスでき、機能の確認が行えます。そのためのCredentialsが表示されています。
DVWA ログインと初期セットアップ
インストール完了時に表示されたCredentials情報によりDVWAにログインします。
簡単な初期セットアップを行います。"Setup DVWA" -> "Create / Reset Database" を実行、再度ログインを行います。
Welcome メッセージとともに、左側に脆弱なアプリケーションをナビゲートできるメニューが表示されるようになりました。
Home画面を下までスクロールし、"DVWA Security Setting"を選択し、Security Levelを "Low" に指定し、"Submit" します。
###脆弱なWebアプリケーションの実行と確認
DVWAで構成されたテスト用の脆弱なアプリケーションの稼働を確認します。OWASP SQL Injection で説明されている、非常に有名な方法である、
OR 'a'='a'
を試します。
SQL Injection が成功し、意図しないユーザリストが表示されました。
参考
[01] OWASP SQL Injection https://owasp.org/www-community/attacks/SQL_Injection
[02] github DVWA https://github.com/digininja/DVWA
[03] github DVWA Installer https://github.com/IamCarron/DVWA-Script







