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 apache25. 完成安装与常见问题解决
现在可以在浏览器中访问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密钥。你可以选择:
- 访问Google reCAPTCHA官网申请自己的密钥
- 使用公开的测试密钥(安全性较低)
如果使用测试密钥,修改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"开始,逐步提高难度。
