如何在Ubuntu 18.04服務器上安裝和配置DVWA Lab

您好,今天,我們將學習如何在Ubuntu 18.04服務器上安裝和配置DVWA Lab。

DVWA 被定義為該死的基於PHP / MySQL的易受攻擊的Web應用程序,其主要目標是幫助安全專業人員在法律環境中測試其技能和工具,幫助Web開發人員更好地理解保護Web應用程序的過程並幫助教師或學生進行教學或分別在教室環境中學習Web應用程序的安全性。

在Ubuntu 18.04上安裝和配置DVWA Lab

在Ubuntu 18.04上安裝DVWA

要在Ubuntu 18.04服務器上設置DVWA,請執行以下過程。

更新和升級服務器上的所有軟件包。

apt update
apt upgrade

升級完成後,我們將安裝LAMP堆棧的基本組件,即Apache,MySQL和PHP。因此,您可以查看我們以前的文章,了解如何在Ubuntu 18.04上安裝LAMP Stack。

一旦有了LAMP Stack,請按照以下步驟進行操作。

當系統提示您設置MySQL密碼時,您可以將其設置為DVWA使用的默認密碼, [email protected]。如果您確實設置了其他密碼,請保留該密碼,以備日後使用。

下載DVWA

DVWA可作為將在您自己的Web服務器上運行的程序包或作為Live CD提供。在本指南中,我們將使用DVWA軟件包。

我們將在Apache Web根目錄上安裝DVWA,/var/www/html。因此,您必須刪除默認 index.html 文件。

rm -r /var/www/html/index.html

完成後,將最新版本的DVWA複製到某個目錄,例如 / tmp 通過運行以下命令;

git clone https://github.com/ethicalhack3r/DVWA /tmp/DVWA

現在可以在下面的目錄中找到所需的DVWA源代碼文件 / tmp / DVWA。您需要將這些文件移動或複製到Apache默認的Web根目錄,如下所示。

rsync -avP /tmp/DVWA/ /var/www/html/

現在,您可以驗證所有DVWA源代碼文件都在Apache Web根目錄下。

ls /var/www/html/
about.php     config       docs  external     hackable     index.php         login.php   phpinfo.php  README.md   security.php  vulnerabilities
CHANGELOG.md  COPYING.txt  dvwa  favicon.ico  ids_log.php  instructions.php  logout.php  php.ini      robots.txt  setup.php

在Ubuntu 18.04上配置DVWA

設置數據庫連接詳細信息

接下來,我們將配置DVWA數據庫連接詳細信息。您會注意到,DVWA配置文件名為 /var/www/html/config/config.inc.php.dist。因此,將此配置文件重命名為 /var/www/html/config/config.inc.php

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

如果您設置了其他MySQL密碼,請編輯配置文件, /var/www/html/config/config.inc.php 並找到線,  $_DVWA[ 'db_password' ] = '[email protected]'; 並更換 '[email protected]' 用您的新密碼。例如,如果您將根密碼設置為 [email protected],您的配置應如下所示;

vim /var/www/html/config/config.inc.php
...
# 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' ] = '[email protected]';
...

請注意,如果您使用的是MariaDB而不是MySQL,則不能使用數據庫根用戶,因此必須使用以下命令創建新數據庫和數據庫用戶。

mysql> create database dvwa;
mysql> grant all on dvwa.* to [email protected] identified by '[email protected]';
mysql> flush privileges;
mysql> quit

完成創建dvwa數據庫用戶的操作後,編輯DVWA配置並調整數據庫配置設置,使您的配置看起來像;

...
$_DVWA[ 'db_server' ] = '127.0.0.1';
$_DVWA[ 'db_database' ] = 'dvwa';
$_DVWA[ 'db_user' ] = 'dvwa';
$_DVWA[ 'db_password' ] = '[email protected]';
...

保存配置文件並重新啟動MySQL。

systemctl restart mysql

配置PHP

我們這裡安裝的PHP版本是7.2。

php -v
PHP 7.2.10-0ubuntu0.18.04.1 (cli) (built: Sep 13 2018 13:45:02) ( NTS )

現在編輯文件, /etc/php/7.2/apache2/php.ini 並進行以下更改。

  • allow_url_include = on –允許包含遠程文件(RFI)
  • allow_url_fopen = on –允許包含遠程文件(RFI)
  • safe_mode = off –(如果PHP <= v5.4)允許進行SQL注入(SQLi)
  • magic_quotes_gpc = off –(如果PHP <= v5.4)允許進行SQL注入(SQLi)
  • display_errors = off –(可選)隱藏PHP警告消息以使其不再那麼冗長

文件權限

使Web服務分別對文件上載和PHPIDS寫入以下文件夾和文件。

/var/www/html/hackable/uploads/
/var/www/html/external/phpids/0.6/lib/IDS/tmp/phpids_log.txt

簡而言之,您可以更改Apache Web根目錄的所有權,如下所示;您可以更改Apache Web根目錄的所有權。

chown -R www-data.www-data /var/www/html/

現在,找到服務器的IP地址並導航到Web瀏覽器,然後在地址欄上鍵入Web服務器的IP地址以訪問DVWA。請參見下面的屏幕截圖。

如果您使用的是MariaDB,那麼您將直接獲得登錄頁面。

如果網頁未加載,並顯示Apache錯誤日誌, #tail /var/log/apache2/error.log,您會收到以下錯誤;

[Tue Oct 30 23:27:28.149822 2018] [php7:error] [pid 16560] [client 192.168.43.149:40556] PHP Fatal error: Uncaught Error: Call to undefined function mysqli_connect() in /var/www/html/dvwa/includes/dvwaPage.inc.php:470nStack trace:n#0 /var/www/html/login.php(8): dvwaDatabaseConnect()n#1 {main}n thrown in /var/www/html/dvwa/includes/dvwaPage.inc.php on line 470

這意味着您缺少PHP mysqli軟件包。如下所示安裝軟件包,然後重新啟動Apache。

apt install php-mysqli -y
systemctl restart apache2

如上面的儀錶板所示,有些問題的狀態用紅色和紅色標記,因此我們需要按以下步驟進行修復:

  • PHP模塊gd:缺少

    • 通過安裝php-gd模塊來解決此問題;
    • # apt install php-gd -y
  • reCAPTCHA密鑰:丟失
    • 通過從中生成重新捕獲值來解決此問題 Google服務
    • 生成後,請編輯 /var/www/html/config/config.inc.php 並設置以下值:
      • $_DVWA[ 'recaptcha_public_key' ] = 'PASTE YOUR PUBLIC KEY HERE';
      • $_DVWA[ 'recaptcha_private_key' ] = 'PASTE YOUR SECRET KEY HERE';

完成配置後,重新啟動Apache和MySQL

systemctl restart apache2
systemctl restart mysql

返回您的網絡瀏覽器並重新加載頁面,現在一切都很好。

在Ubuntu 18.04服務器上安裝和配置DVWA Lab

為DVWA創建數據庫

現在,您必須創建DVWA數據庫以確保練習成功。點擊按鈕 創建/重置數據庫 在網頁底部。您可能會遇到以下錯誤;

在Ubuntu 18.04服務器上安裝和配置DVWA Lab

上面的錯誤是由於錯誤的數據庫連接詳細信息引起的。您可以驗證如下所示;

mysql -u root -p[email protected] -D dvwa -h 127.0.0.1
mysql: [Warning] Using a password on the command line interface can be insecure.
ERROR 1698 (28000): Access denied for user 'root'@'localhost'

因此,登錄到您的mysql重新配置它,如下所示;

mysql -u root -p

刪除root用戶;

drop user [email protected];

重新創建root用戶;

create user [email protected] identified by '[email protected]'

您可以選擇使用默認的DVWA密碼, [email protected]

運行以下命令以重新加載數據庫授權表並退出數據庫連接。

flush privileges;
quit;

重新啟動MySQL服務

systemctl restart mysql

在可以導航回Web UI之前,請驗證您現在可以使用設置的登錄憑據連接到DVWA DB。

mysql -u root -p[email protected] -D dvwa -h 127.0.0.1

如果一切順利,那麼它應該能夠看到數據庫已在Web UI上創建。

在Ubuntu 18.04服務器上安裝和配置DVWA Lab

如果一切順利,您將被重定向到登錄頁面。

在Ubuntu 18.04服務器上安裝和配置DVWA Lab

現在,您可以使用憑據登錄到DVWA服務器。用戶 admin 密碼: password

在Ubuntu 18.04上安裝和配置DVWA Lab

妳去

總結一下,我們已經成功學習了在Ubuntu 18.04服務器上安裝和配置DVWA Lab的知識。您現在可以尋找這些漏洞。希望本文對您有所幫助。快樂的漏洞搜尋!

其他相關指南

如何在Ubuntu 18.04上安裝Acutenix

在Debian 10上安裝Nessus Professional掃描儀

在Debian 10上安裝Nessus Professional掃描儀

Sidebar