Kali 2023.1 实战:一站式部署DVWA渗透测试靶场

1. 环境准备与基础配置

在开始部署DVWA之前,我们需要确保Kali 2023.1系统已经正确安装并完成基础配置。我建议使用VMware Workstation Pro作为虚拟机平台,因为它对Kali Linux的兼容性最好。下载Kali镜像时,推荐选择官方提供的VMware专用镜像,这种镜像已经预装了VMware Tools,省去了后续安装的麻烦。

登录系统后,第一件事就是切换软件源。国内用户使用默认源下载速度会很慢,这里我实测阿里云的镜像源速度最快。打开终端,输入以下命令备份原有源列表:

sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak

然后用vim编辑源文件:

sudo vim /etc/apt/sources.list

删除原有内容,替换为阿里云镜像源:

deb https://mirrors.aliyun.com/kali kali-rolling main non-free contrib deb-src https://mirrors.aliyun.com/kali kali-rolling main non-free contrib

保存退出后,执行更新命令:

sudo apt update && sudo apt upgrade -y

这个步骤大概需要10-20分钟,取决于你的网络速度。我遇到过几次因为网络问题导致更新失败的情况,这时候可以尝试更换其他国内源,比如清华源或者中科大源。

2. 安装必要服务组件

DVWA需要Apache、MySQL和PHP的支持,这三个组件被称为LAMP环境。在Kali 2023.1中,这些组件都可以通过apt直接安装。先安装Apache:

sudo apt install apache2 -y

安装完成后,可以通过以下命令检查Apache是否正常运行:

sudo systemctl status apache2

如果看到"active (running)"字样,说明服务已经启动。这时候在浏览器输入localhost,应该能看到Apache的默认页面。

接下来安装MySQL。Kali 2023.1默认使用MariaDB作为MySQL的替代:

sudo apt install mariadb-server -y

安装完成后需要运行安全脚本:

sudo mysql_secure_installation

这个脚本会提示你设置root密码、移除匿名用户等安全选项。我建议全部选择"Y"来加强安全性。

最后安装PHP及其相关模块:

sudo apt install php libapache2-mod-php php-mysql php-gd php-curl -y

这里特别注意要安装php-gd模块,否则后续DVWA的验证码功能会报错。我曾经因为这个遗漏浪费了半天时间排查问题。

3. 部署DVWA靶场

现在可以开始部署DVWA了。首先使用git克隆项目仓库:

git clone https://github.com/digininja/DVWA

克隆完成后,将DVWA移动到Apache的网站根目录:

sudo mv DVWA /var/www/html/

然后设置正确的权限:

sudo chmod -R 777 /var/www/html/DVWA

这个权限设置比较宽松,在实际生产环境中需要更严格的权限控制,但作为学习环境这样可以避免很多权限问题。

接下来配置DVWA的数据库连接。进入配置目录:

cd /var/www/html/DVWA/config/

复制默认配置文件:

cp config.inc.php.dist config.inc.php

然后用vim编辑配置文件:

vim config.inc.php

找到数据库配置部分,修改为以下内容:

$_DVWA['db_user'] = 'dvwa'; $_DVWA['db_password'] = 'p@ssw0rd'; $_DVWA['db_database'] = 'dvwa';

这些值可以自定义,但要记住后面创建数据库时需要保持一致。

4. 数据库初始化与服务配置

现在我们需要创建DVWA使用的数据库和用户。首先登录MySQL:

sudo mysql -u root -p

输入之前设置的root密码后,执行以下SQL语句:

CREATE DATABASE dvwa; CREATE USER 'dvwa'@'localhost' IDENTIFIED BY 'p@ssw0rd'; GRANT ALL PRIVILEGES ON dvwa.* TO 'dvwa'@'localhost'; FLUSH PRIVILEGES; exit;

注意这里的用户名和密码必须与config.inc.php中的配置一致。

接下来修改PHP配置,允许URL包含:

sudo vim /etc/php/8.2/apache2/php.ini

找到allow_url_include选项,将其值改为On:

allow_url_include = On

保存退出后,重启Apache服务使配置生效:

sudo systemctl restart apache2

5. 完成安装与常见问题解决

现在可以在浏览器中访问DVWA了。打开浏览器,输入:

http://localhost/DVWA/setup.php

如果一切正常,你会看到DVWA的安装页面。点击页面底部的"Create/Reset Database"按钮初始化数据库。

常见问题1:如果页面提示PHP模块缺失,比如gd模块,可以这样安装:

sudo apt install php-gd -y sudo systemctl restart apache2

常见问题2:关于reCAPTCHA key缺失的警告。DVWA的部分功能需要Google reCAPTCHA密钥。你可以选择:

  1. 访问Google reCAPTCHA官网申请自己的密钥
  2. 使用公开的测试密钥(安全性较低)

如果使用测试密钥,修改config.inc.php文件:

$_DVWA['recaptcha_public_key'] = '6LdK7xITAAzzAAJQTfL7fu6I-0aPl8KHHieAT_yJg'; $_DVWA['recaptcha_private_key'] = '6LdK7xITAAzzAAL_uw9YXVUOPoIHPZLfw2K1n5NV';

常见问题3:如果遇到数据库连接错误,检查以下几点:

  • MySQL服务是否运行:sudo systemctl status mysql
  • 数据库用户名密码是否正确
  • config.inc.php中的配置是否与创建数据库时一致

最后,在DVWA Security页面可以选择安全级别,从低到高共有四个级别。建议初学者从"Low"开始,逐步提高难度。