如何在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