一、关于DVWA的简单介绍
DVWA(Damn Vulnerable Web Application)是一个用 PHP/MySQL 编写的 Web 应用程序,专门用于帮助安全爱好者、开发人员和学生理解和测试 Web 应用程序的安全漏洞。
二、相关环境准备
2.1 LAMP环境(Linux+Apache+MySQL+PHP)
2.1.1 安装配置centOS7
安装用于运行虚拟机的软件VMware,安装centos7,成功运行虚拟机后进入配置步骤。
1、配置yum国内镜像源(阿里云)
由于CentOS 7的官方源已经不再提供服务,为了解决这个问题,需要将源更换为阿里云的镜像。
首先打开虚拟机,进入终端,输入以下代码备份原有yum配置文件:
sudo cp /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak
然后下载阿里云的yum配置文件,这条命令会从阿里云的镜像站点下载适用于CentOS 7的yum配置文件,并将其覆盖到原有的CentOS-Base.repo
文件中。
sudo wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
之后更新yum缓存,下载新的软件包索引文件,并将其缓存在本地,以便yum能够快速访问。
sudo yum makecache
2、安装基础工具及相关设置
#ifconfig不可用时输入下面命令
yum install net-tools -y
#关闭防火墙并设置开机不启动
systemctl stop firewalld
systemctl disable firewalld
而后关闭selinux,需要使用vim编辑器
#关闭selinux
vi /etc/selinux/config
修改SELINUX=disabled
vim编辑器相关命令:
光标移动命令(可用方向键,或者使用h左,j下,k上,l右)
/字符(在默认的一般模式下查找字符,按下回车搜索,使用n向下查找,N向上查找)
I(从一般模式进入编辑模式,插入内容,底栏会显示insert)
x(删除光标所在位置字符)
ESC(从编辑模式退出到一般模式)
u(在一般模式下,撤销最近的一次编辑)
CTRL+r(在一般模式下,重做上一次撤销的编辑操作)
:q(在一般模式下,未修改退出vim)
:q!(在一般模式下,不保存退出vim)
:wq(在一般模式下,保存退出vim)
:help(打开vim帮助文档)
重启,之后清空防火墙
reboot
#清空防火墙
iptables -F
2.2 安装apache,mysql,php
2.2.1 安装php及其相关交互模块
yum install php php-mysql php-gd php-ldap php-odbc php-pear php-xml php-xmlrpc php-mbstring php-snmp php-soap curl curl-devel php-bcmath -y
2.2.2 安装apache以及MySQL并设置开机自启
systemctl start httpd
systemctl start mariadb
systemctl enable httpd
systemctl enable mariadb
2.2.3 验证环境
首先切换到/var/www/html在目录下创建一个文件info.php
cd /var/www/html
sudo vim info.php
在测试文件中,通过vim编辑器写入以下代码,可按I进入插入模式而后输入,而后ESC退出,最后输入:wq ,回车保存退出编辑器。
<?php
phpinfo();
?>
设置文件权限,确保web服务器用户apache有权访问测试文件。
sudo chown apache:apache /var/www/html/info.php
sudo chmod 644 /var/www/html/info.php
在浏览器中访问CentOS 7虚拟机,在URL栏中输入http://<你的虚拟机IP>/info.php
来查看刚刚创建的PHP页面,浏览器能够访问php信息页即测试成功。
MySQL测试,先给其设置账户密码,能够正常运行后退出。
mysqladmin -u root password "root"
mysql -uroot -proot
测试php连接MySQL,仍在/var/www/html下创建测试文件,同样使用浏览器访问:
<?php
$conn = new mysqli("localhost", "root", "你的密码");
if ($conn->connect_error) {
die("连接失败: " . $conn->connect_error);
}
echo "MySQL连接成功!";
?>
ps: 如果遇到SELinux阻止访问,可临时禁用sudo setenforce 0
sudo chcon -R -t httpd_sys_content_t /var/www/html
三、安装配置DVWA
3.1 下载DVWA压缩包
对于CentOS系的系统,先安装wget工具,再通过工具下载目标压缩包。
sudo yum install wget
wget https://github.com/ethicalhack3r/DVWA/archive/master.zip
3.2 解压DVWA压缩包
下载unzip工具,而后将文件解压到/var/www/html
yum install -y unzip
unzip -d . master.zip
3.3 配置DVWA的数据库连接
3.3.1 修改config.inc.php文件
在/var/www/html/DVWA-master/config目录下是对DMWA靶场环境进行配置的文件,默认有config.inc.php.dist文件,但是起作用的是config.inc.php文件(注意两者文件后缀),所以可以复制文件后进行更改。
#进入DVWA的配置目录
cd /var/www/html/DVWA/config
#复制配置文件模板
cp config.inc.php.dist config.inc.php
使用vim编辑器进行修改(相关vi命令见之前的内容),更改数据库信息与recaptcha密钥(见下)
vi config.inc.php
3.3.2 配置recaptcha
reCAPTCHA是Google开发的一项安全验证服务,通过区分人类用户和机器人来保护网站免受自动化攻击,需要科学上网去申请google.com/recaptcha
这里选择如下选项,至于域名可以填localhost(测试使用)
申请成功后可得到一个公钥一个密钥,填入下图绿圈位置;红圈位置填写数据库账户密码。
3.3.3 其他配置
1.设置文件权限:
chown -R apache:apache /var/www/html/DVWA-master
chmod -R 755 /var/www/html/DVWA-master
2.确保防火墙允许HTTP和HTTPS流量通过:
firewall-cmd --add-service=http --permanent
firewall-cmd --add-service=https --permanent
firewall-cmd --reload
3.修改PHP配置:
编辑/var/www/html/DVWA-master/php.ini
文件,确保allow_url_include
设置为On
allow_url_include = Off
修改为
allow_url_include = On#最后重新启动一下httpd systemctl restart httpd
以及修改Apache里的php.ini文件配置,注意不是DVWA中的php.ini文件,若使用小皮面板或者宝塔也是同上查找并修改该文件。
3.4 访问DVWA
可使用ip addr show命令查找虚拟机IP。
浏览器输入<虚拟机IP>/DVWA,访问DVWA,点击“Create/Reset Database”按钮来创建数据库。
使用默认的用户名admin
和密码password
登录DVWA。
至此完成在UbuntuCentOS虚拟机中的DVWA靶场的安装配置。