尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

Kali Linux 实战:手把手部署DVWA渗透测试靶场

Kali Linux 实战:手把手部署DVWA渗透测试靶场 1. 为什么选择DVWA靶场DVWADamn Vulnerable Web Application是我最推荐给初学者的渗透测试练习靶场。这个用PHP写的开源项目专门设计了SQL注入、XSS、文件上传等15种常见漏洞而且可以自由调整安全等级。第一次接触它是在2016年当时为了准备CISP-PTE考试我在自己的Kali笔记本上反复折腾这个靶场把每个漏洞模块都玩了个遍。相比其他靶场DVWA有三个不可替代的优势首先是环境友好它只需要ApacheMySQLPHP的基础环境在Kali上5分钟就能跑起来其次是教学属性强每个漏洞页面都附带详细说明和攻击原理最重要的是可控性强你可以通过滑块自由调节漏洞难度从完全无防护到带基础防御的多个阶段循序渐进练习。2. 环境准备与依赖安装2.1 更新Kali系统在开始之前建议先更新你的Kali系统。我遇到过不少案例是因为系统组件版本不兼容导致部署失败。打开终端执行sudo apt update sudo apt upgrade -y这个步骤会更新所有已安装的软件包。曾经有学员反馈执行时报错通常是源配置问题。可以检查/etc/apt/sources.list文件确保包含官方源deb http://http.kali.org/kali kali-rolling main non-free contrib2.2 安装LAMP组件DVWA需要完整的LAMP环境LinuxApacheMySQLPHP。虽然Kali预装了Apache但还需要补充一些组件sudo apt install -y apache2 mariadb-server php php-mysqli php-gd libapache2-mod-php这里特别说明下包的选择mariadb-serverMySQL的替代品更适合Kali环境php-mysqliMySQL数据库连接驱动php-gd图形处理库DVWA的验证码功能需要安装完成后建议用php -v确认PHP版本。我在2023年测试时Kali默认安装的是PHP 8.2与DVWA可能存在兼容性问题。如果遇到页面报错可以降级到PHP 7.4sudo apt install -y php7.4 php7.4-mysqli php7.4-gd sudo a2dismod php8.2 sudo a2enmod php7.4 sudo systemctl restart apache23. 部署DVWA靶场3.1 获取项目代码不建议直接克隆GitHub仓库因为主分支可能包含实验性代码。我习惯使用稳定版本cd /var/www/html sudo wget https://github.com/digininja/DVWA/archive/refs/tags/v1.10.zip sudo unzip v1.10.zip sudo mv DVWA-1.10 DVWA给目录设置正确权限很重要这是很多新手会忽略的sudo chown -R www-data:www-data /var/www/html/DVWA sudo chmod -R 755 /var/www/html/DVWA3.2 数据库配置启动MariaDB服务后安全初始化很重要。执行以下交互式命令sudo mysql_secure_installation按照提示设置root密码、移除匿名用户、禁止远程root登录等。然后创建DVWA专用数据库CREATE DATABASE dvwa; CREATE USER dvwalocalhost IDENTIFIED BY pssw0rd; GRANT ALL PRIVILEGES ON dvwa.* TO dvwalocalhost; FLUSH PRIVILEGES;3.3 配置文件调整复制配置文件模板并编辑cd /var/www/html/DVWA/config sudo cp config.inc.php.dist config.inc.php sudo nano config.inc.php需要修改的关键参数$_DVWA[db_user] dvwa; $_DVWA[db_password] pssw0rd; $_DVWA[db_database] dvwa;如果遇到ReCAPTCHA key missing警告可以到Google reCAPTCHA官网申请免费密钥或者直接关闭这个功能$_DVWA[recaptcha_public_key] ; $_DVWA[recaptcha_private_key] ;4. 服务启动与验证4.1 启动基础服务建议配置服务开机自启sudo systemctl enable apache2 mariadb sudo systemctl start apache2 mariadb检查服务状态时除了看active状态还要注意日志sudo tail -f /var/log/apache2/error.log4.2 初始化靶场访问http://localhost/DVWA/setup.php点击Create/Reset Database按钮。如果遇到以下问题空白页面检查PHP错误日志/var/log/apache2/error.log数据库连接失败确认config.inc.php中的密码与MySQL设置的匹配权限拒绝执行sudo chown -R www-data:www-data /var/www/html/DVWA4.3 登录测试使用默认凭证登录用户名admin密码password首次登录后建议立即修改密码。在DVWA安全面板中可以调整安全级别Low完全无防护Medium基础防护High较强防护Impossible理论上不可攻破5. 常见问题排查5.1 PHP函数禁用问题DVWA需要允许以下危险函数编辑/etc/php/7.4/apache2/php.iniallow_url_include On allow_url_fopen On disable_functions 修改后重启Apache生效sudo systemctl restart apache25.2 数据库连接异常如果遇到Access denied for user dvwalocalhost可以这样排查确认用户存在SELECT User FROM mysql.user;检查权限SHOW GRANTS FOR dvwalocalhost;重新授权GRANT ALL ON dvwa.* TO dvwalocalhost IDENTIFIED BY pssw0rd;5.3 跨设备访问配置如果想从局域网其他设备访问需要修改Apache配置sudo nano /etc/apache2/sites-available/000-default.conf将VirtualHost *:80中的*改为Kali的局域网IP。同时关闭防火墙sudo ufw disable6. 靶场使用建议DVWA的每个漏洞模块都值得深入研究。以SQL注入为例在Low安全级别下尝试基础注入查看源码理解过滤逻辑在Medium级别尝试绕过基础过滤最后挑战High级别的防护机制我习惯在每次练习时同时打开三个窗口浏览器操作界面Burp Suite抓包分析终端查看服务端日志这种多角度观察的方式能快速理解攻击原理和防御机制。记住每次修改安全级别后最好重置一次数据库以确保环境干净。
返回列表