一、准备内容
本文在Centos8中安装配置DVWA靶场,该靶场启动需具备【Linux+Apache+Mysql+Php】四大环境:所以在后续的安装配置DVWA靶场时遇到问题首先需要排查Apache、Mysql、Php这三大环境是否正常启动(若不能正常启动则需逐一排查解决)
1.1、DVWA的环境配置包
有两种方式准备DVWA的环境配置包:
方式一:准备【Apache】、【Mysql(Mariadb)】、【php】的yum命令安装
序号 | 名称 | yum安装命令 |
1 | Apache | yum install -y httpd |
2 | Mysql | yum -y install mariadb-server |
3 | PHP | Centos8中安装配置php |
注意:其中数据库建议安装mariadb
Centos8安装软件提示为 repo ‘appstream‘ 下载元数据失败 : Cannot prepare internal mirrorlist: No URLs in mirrorlist解决办法
方式二:使用DVWA官方推荐的XAMPP进行统一安装【Apache】、【Mysql】、【php】内容安装
名称 | 下载地址 |
XAMPP安装包 | https://www.apachefriends.org/download.html |
1.2、DVWA的靶场包
序号 | 名称 | 链接 |
1 | DVWA官网 | http://www.dvwa.co.uk/ |
2 | DVWA靶场 | https://codeload.github.com/ethicalhack3r/DVWA/zip/master |
1.3、我这里提供的DVWA资源包下载
DVWA资源包包含Linux和Windows平台下的XAMPP8.0.25,8.1.12&8.2.0版本安装包
二、安装DVWA环境
本文使用官方推荐的XAMPP包进行环境的配置,具体操作流程如下:
2.1、下载XAMPP包进行安装
2.1.1、登陆Centos8并且切换到root用户下
2.1.2、切换到 usr或opt目录后下载XAMPP包
比如我这里下载【8.2.0 / PHP 8.2.0】版本的XAMP则如下图所示:(根据自身需求下载对应版本)
#XAMPP包下载命令
wget https://nchc.dl.sourceforge.net/project/xampp/XAMPP%20Linux/8.2.0/xampp-linux-x64-8.2.0-0-installer.run
2.1.3、查看当前目录下的文件,检查XAMPP包是否下载
检查是否含有名为【xampp-linux-x64-8.2.0-0-installer.run】的文件,如下图所示:
2.1.4、安装XAMPP包
#给XAMPP包赋予执行权限命令
chmod a+x xampp-linux-x64-8.2.0-0-installer.run
#执行当前目录下的文件命令
./文件名
./xampp-linux-x64-8.2.0-0-installer.run
2.2、下载DVWA靶场包配置
2.2.1、切换到 usr或opt目录后下载DVWA包
#下载DVWA靶场包命令
wget https://codeload.github.com/ethicalhack3r/DVWA/zip/master
2.2.2、查看当前目录下的文件,检查DVWA包是否下载
检查是否含有名为【master】的文件,如下图所示:
2.2.3、复制DVWA包到Apache主目录
将下载好的DVWA包【master】复制到Apache的主目录【/var/www/html/】下,如下图所示:
#复制命令
cp -r 源 目的
#比如我想把当前目录下的[master]文件复制到【/var/www/html/】目录下命令为:
cp master /var/www/html/
2.2.4、将DVWA文件解压
①进入到Apache的主目录
进入Apache主目录的命令为:
cd /var/www/html/
②在Apache的主目录下解压DVWA文件
#解压.zip文件命令
unzip 文件名
#比如我这里需要解压master文件的命令为:
unzip master
2.2.5、重命名解压后DVWA文件为dvwa
①修改当前Apache主目录下解压后的DVWA文件【DVWA-master】
#修改文件、或夹名称命令
mv 当前需修改的文件或文件夹名称 需要修改为的文件或文件夹名称
#修改DVWA文件DVWA-master为dvwa命令
mv DVWA-master dvwa
②修改名称后查看当前Apache主目录下的所有文件
2.3、验证Apache是否成功安装启动
①添加Apache防火墙的端口
#添加Apache防火墙的默认端口【80】命令
firewall-cmd --zone=public --add-port=80/tcp --permanent
#重启防火墙命令
firewall-cmd --reload
#查看当前开放的防火墙端口命令
firewall-cmd --list-port
②按照如上的命令添加完成Apache防火墙端口的命令后;在浏览器中输入【DVWA所部署在的Centos服务器IP:端口】即可查看Apache是否成功安装启动(我这里使用的的Apache地址是8091)
注意:在浏览器中查看到的结果和上图不一样,则表示部署的Apache没有启动,则可以参照《 Centos8中Apache服务无法启动原因排查——Apache默认端口被占用》链接排查。
2.4、查看DVWA靶场
前提是:Apache已经正常启动。
①在浏览器中输入【DVWA所部署在的Centos服务器IP:端口/dvwa】查看DVWA靶场显示异常(比如:http://192.168.146.138:8091/dvwa/)后如下图报错【DVWA Sytem error - config file not found . Copy config/config.inc.php.dist to config/config.inc.php and configure to your environment.】错误
解决该错误方法为:
#1-进入Apache主目录下dvwa的config文件夹下
cd /var/www/html/dvwa/config/
#2-去除Apache主目录下dvwa的config文件夹下[config.inc.php.dist]的.dist后缀
mv config.inc.php.dist config.inc.php
②再次在浏览器中输入【DVWA所部署在的Centos服务器IP:端口/dvwa】查看DVWA靶场则正常(比如:http://192.168.146.138:8091/dvwa/)后正常如下图:
注意:如果此次在浏览器中输入【DVWA所部署在的Centos服务器IP:端口/dvwa】查看DVWA没有如上图所示显示正常网页,而是显示文件名称内容信息,则表示Php没有安装,需要配置PHP环境。
2.5、安装配置PHP
安装配置PHP环境请参照《Centos8中安装配置php》链接进行操作,正常安装配置完成PHP后,在浏览器中输入【DVWA所部署在的Centos服务器IP:端口/dvwa】查看DVWA靶场则如【2.4、查看DVWA靶场】中②显示的图片或如下图才是正确的。
DVWA账号 | DVWA密码 |
admin | password |
三、配置DVWA
3.1、将DVWA的安装检查项都配置为绿色
进入DVWA的【Setup / Reset DB】界面查看发现有一些内容是红色的(红色内容表示不符合安装要求的,需要修改配置内容)如下图所示:
3.1.1、解决【PHP function allow_url_include: Disabled】报红
#编辑php.ini文件的allow_url_include为On命令
vim /etc/php.ini
3.1.2、解决【reCAPTCHA key: Missing】报红
编辑dvwa靶场的config文件下的【config.inc.php】文件,如下图所示
#1-打开dvwa靶场的配置文件命令
vim /var/www/html/dvwa/config/config.inc.php
#2-按下键盘[i]键移动光标编辑,编辑完成后按下【ESC】键退出编辑,最后输入【:wq】保存退出
$_DVWA[ 'recaptcha_public_key' ] = '6LdK7xITAAzzAAJQTfL7fu6I-0aPl8KHHieAT_yJg';
$_DVWA[ 'recaptcha_private_key' ] = '6LdK7xITAzzAAL_uw9YXVUOPoIHPZLfw2K1n5NVQ';
3.1.3、解决【uploads、config】文件夹和【phpids_log.txt】文件报红
#给文件所有者设置可读可写可执行权限命令
chomd u+rwx 文件夹或文件
#或者直接使用给所有人都设置可读可写可执行权限命令
chomd 777 文件夹或文件
注意1:我这里是测试环境所以直接使用了给所有人都设置可读可写可执行权限命令;生产环境需要根据自身情况设置。
注意2:如果进行了以上的内容设置后,但是【uploads、config】文件夹和【phpids_log.txt】文件依旧显示No报红(这是由于Linux的SELinux安全限制),则需要执行如下命令即可:
setsebool -P httpd_unified 1
或者也可以直接关闭SELinux
序号 | 说明 | 命令 |
1 | 临时关闭SELinux重启系统后还会开启。 | setenforce 0 |
2 | 永久关闭SELinux | vim /etc/selinux/config,将SELINUX=enforcing改为SELINUX=disabled,然后保存退出 |
以上都设置完成后DVWA的安装检查项都配置为绿色图如下所示:
3.2、Create / Reset Database
前提:Setup Check的检查项都为绿色后在操作
《1》点击【Create / Reset Database】后如下图所示:如果出现【Could not connect to the database service.Please check the config file】错误,则进行如下操作:
3.2.1、检查mariadb数据库是否启动
①启动mysql数据库
#启动mysql数据库命令
systemctl start mysql.service
如果执行该启动数据库命令报错【Failed to start mysql.service:Unit mysqld.service not found.】
②解决启动mysql数据库报错问题步骤
#1-安装mariadb数据库命令
yum -y install mariadb mariadb-devel mariadb-server
#2-启动mariadb数据库
systemctl start mariadb.service
#3-添加mariadb数据库到开机启动
systemctl enable mariadb.service
详细的mariadb数据库安装教程请参考《Centos8安装配置Mariadb数据库》
③在mariadb数据库中创建dvwa数据库和账号且允许远程访问
#1-使用root账号登陆mariadb数据库
mysql -uroot -p
#2-创建名为dvwa的数据库命令
create database dvwa;
#3-创建名为dvwa且密码为dvwa的远程访问账号命令
create user 'dvwa'@% identified by 'dvwa';
#4-只给192.168.146.153主机使用dvwa账号密码远程访问mariaDB的dvwa库的权限命令
grant all privileges on dvwa.* to 'dvwa'@'192.168.146.153' identified by 'dvwa' with grant option;
#5-授权后必须刷新才起效
flush privileges;
3.2.2、修改DVWA配置文件的数据库内容
#编辑DVWA靶场中配置文件的数据库内容命令
vim /var/www/html/dvwa/config/config.inc.php
#1-查看mariadb数据库的状态命令
systemctl status mariadb
#2-启动mariadb数据库的命令
systemctl start mariadb
#3-停止mariadb数据库的命令
systemctl stop mariadb
#4-重启mariadb数据库的命令
systemctl restart mariadb
3.2.3、解决【Connect DATABASE Error TYPE: 2002: Permission denied】错误
#解决【Connect DATABASE Error TYPE: 2002: Permission denied】错误命令
setsebool -P httpd_can_network_connect_db 1
3.2.4、开放mariadb数据库的防火墙端口
#1-开启mariadb数据库的防火墙3306端口
firewall-cmd --zone=public --add-port=6379/tcp --permanent
#2-重启防火墙
firewall-cmd --reload
#3-查看防火墙的端口哪些是打开的
firewall-cmd --list-port
3.2.5、成功创建或重置DVWA的数据库
点击【Create / Reset Database】后成功创建DVWA的效果如下:
到这里就可以正常的使用DVWA靶场进行网络安全内容的测试了。