当前位置: 首页 > news >正文

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

1. 为什么选择DVWA靶场?

DVWA(Damn Vulnerable Web Application)是我最推荐给初学者的渗透测试练习靶场。这个用PHP写的开源项目,专门设计了SQL注入、XSS、文件上传等15种常见漏洞,而且可以自由调整安全等级。第一次接触它是在2016年,当时为了准备CISP-PTE考试,我在自己的Kali笔记本上反复折腾这个靶场,把每个漏洞模块都玩了个遍。

相比其他靶场,DVWA有三个不可替代的优势:首先是环境友好,它只需要Apache+MySQL+PHP的基础环境,在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 contrib

2.2 安装LAMP组件

DVWA需要完整的LAMP环境(Linux+Apache+MySQL+PHP)。虽然Kali预装了Apache,但还需要补充一些组件:

sudo apt install -y apache2 mariadb-server php php-mysqli php-gd libapache2-mod-php

这里特别说明下包的选择:

  • mariadb-server:MySQL的替代品,更适合Kali环境
  • php-mysqli:MySQL数据库连接驱动
  • php-gd:图形处理库,DVWA的验证码功能需要

安装完成后,建议用php -v确认PHP版本。我在2023年测试时,Kali默认安装的是PHP 8.2,与DVWA可能存在兼容性问题。如果遇到页面报错,可以降级到PHP 7.4:

sudo apt install -y php7.4 php7.4-mysqli php7.4-gd sudo a2dismod php8.2 sudo a2enmod php7.4 sudo systemctl restart apache2

3. 部署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/DVWA

3.2 数据库配置

启动MariaDB服务后,安全初始化很重要。执行以下交互式命令:

sudo mysql_secure_installation

按照提示设置root密码、移除匿名用户、禁止远程root登录等。然后创建DVWA专用数据库:

CREATE DATABASE dvwa; CREATE USER 'dvwa'@'localhost' IDENTIFIED BY 'p@ssw0rd'; GRANT ALL PRIVILEGES ON dvwa.* TO 'dvwa'@'localhost'; 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'] = 'p@ssw0rd'; $_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.log

4.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/DVWA

4.3 登录测试

使用默认凭证登录:

  • 用户名:admin
  • 密码:password

首次登录后建议立即修改密码。在DVWA安全面板中,可以调整安全级别:

  • Low:完全无防护
  • Medium:基础防护
  • High:较强防护
  • Impossible:理论上不可攻破

5. 常见问题排查

5.1 PHP函数禁用问题

DVWA需要允许以下危险函数,编辑/etc/php/7.4/apache2/php.ini

allow_url_include = On allow_url_fopen = On disable_functions =

修改后重启Apache生效:

sudo systemctl restart apache2

5.2 数据库连接异常

如果遇到"Access denied for user 'dvwa'@'localhost'",可以这样排查:

  1. 确认用户存在:SELECT User FROM mysql.user;
  2. 检查权限:SHOW GRANTS FOR 'dvwa'@'localhost';
  3. 重新授权:GRANT ALL ON dvwa.* TO 'dvwa'@'localhost' IDENTIFIED BY 'p@ssw0rd';

5.3 跨设备访问配置

如果想从局域网其他设备访问,需要修改Apache配置:

sudo nano /etc/apache2/sites-available/000-default.conf

<VirtualHost *:80>中的*改为Kali的局域网IP。同时关闭防火墙:

sudo ufw disable

6. 靶场使用建议

DVWA的每个漏洞模块都值得深入研究。以SQL注入为例:

  1. 在Low安全级别下尝试基础注入
  2. 查看源码理解过滤逻辑
  3. 在Medium级别尝试绕过基础过滤
  4. 最后挑战High级别的防护机制

我习惯在每次练习时同时打开三个窗口:

  • 浏览器操作界面
  • Burp Suite抓包分析
  • 终端查看服务端日志

这种多角度观察的方式能快速理解攻击原理和防御机制。记住每次修改安全级别后,最好重置一次数据库以确保环境干净。

http://www.jsqmd.com/news/505595/

相关文章:

  • DBSCAN聚类参数调优指南:如何用k-distance图快速找到最佳eps和min_samples
  • Artifactory-oos私有Maven仓库:从零搭建到企业级组件托管实战
  • Guohua Diffusion 社区分享:在CSDN记录模型部署与调优全过程
  • Origin迷你图实战:5分钟搞定局部放大,让重叠曲线一目了然
  • 基于Vue.js与Granite TimeSeries FlowState R1打造交互式预测分析仪表盘
  • 从视频到空间:面向智慧军营的三维作战感知与认知决策平台
  • 树莓派5 GPU加速实战:从OpenCL到TensorFlow Lite的完整配置指南
  • 改稿速度拉满 8个一键生成论文工具:本科生毕业论文+开题报告高效写作测评
  • Janus-Pro-7B效果展示:中国水墨、皮克斯动画、照片级真实三风格
  • 使用Python实现Blender与虚幻引擎PSK/PSA格式自动化处理方案
  • 中小企业无线网络规划:从ENSP仿真到AP+AC实战部署
  • 泰山派RK3566编译实录:我是如何用3步彻底解决buildroot权限问题的
  • AI 辅助开发实战:基于 Spring Boot 框架的毕业设计高效构建指南
  • 空间重构驱动的智慧军营:三维感知 × 行为认知 × 智能指挥体系
  • 新一代智慧军营空间智能底座:视频反演驱动的全域感知与作战中枢系统
  • Guohua Diffusion 企业级应用:基于MySQL的用户画像与风格管理
  • 别再只会git clone了!Gitee新手必看的SSH密钥配置与仓库管理全流程(附常见错误排查)
  • Python气象数据处理实战:用Metpy计算水汽通量散度的完整流程(附代码)
  • Youtu-VL-4B-Instruct-GGUF赋能微信小程序:开发拍照识物智能应用
  • 基于Pixel-to-Space的视频空间反演技术在智慧军营中的应用研究
  • 一些性质
  • Selenium 与 Playwright:浏览器自动化工具的深度对比
  • SwiftUI TabView自定义终极指南:从基础到高级UI定制(iOS 15+)
  • 解锁金融数据采集:Python工具pywencai完全指南
  • 《多视角视频融合与三维重建驱动的军营空间智能感知体系构建》
  • 老项目改造指南:纯Maven工程如何像SpringBoot一样打包所有依赖?
  • Dell G15散热管理轻量替代方案:tcc-g15性能优化工具全解析
  • 3个核心突破:重构微信网页版访问体验的技术革新
  • XTDrone视觉定位全流程:PX4+VINS-FUSION在Ubuntu20.04上的保姆级教程
  • GROMACS 2025.2与PLUMED 2.9.3集成部署:从源码编译到模块化环境管理实战