DVWA从入门到精通(一):认识你的Web安全靶场

📅 2026/7/3 4:46:21
DVWA从入门到精通(一):认识你的Web安全靶场
摘要本文是《DVWA从入门到精通》系列的第一篇带你全面认识DVWA这个Web安全界的“练功房”。从它的诞生背景、设计理念到手把手教你基于openEuler欧拉24.03 LTS操作系统使用小皮面板phpStudy完成环境搭建和初始化配置让你在零基础的情况下也能拥有属于自己的安全测试靶场。一、写在前面你为什么需要DVWA在Web安全的学习道路上你可能会遇到这样的困惑学了各种漏洞原理但不敢在真实网站上练习看了很多教程但缺乏一个可以“动手”的环境。这时候你就需要一个合法、安全、可控的练习靶场。DVWADamn Vulnerable Web Application是目前全球最受欢迎的Web安全练习靶场之一。它就像一个网络安全的“练功房”让你可以在完全合法的环境中练习各种黑客攻击技术同时也学习如何防御。二、DVWA的前世今生2.1 它为什么叫“Damn Vulnerable”DVWA的全称是Damn Vulnerable Web Application直译过来就是“该死的易受攻击的Web应用”。这个名字起得相当直白——它就是故意被设计得漏洞百出的PHP/MySQL应用。它的目的很单纯让你在里面“为所欲为”地练习各种攻击技术。2.2 诞生背景DVWA项目始于2008年。当时Web安全领域正在快速发展但安全人员缺乏一个标准化、合法、可控的练习环境。DVWA的出现填补了这个空白——它提供了一个包含多种常见Web漏洞的靶场让安全人员可以在不违法的情况下练习渗透测试技能。如今DVWA已被纳入多个流行的渗透测试工具集和Linux发行版中全球有成千上万的安全专业人员、学生和教师在用它学习和教学。2.3 与其他靶场的对比靶场特点适合人群SQLi-Labs专注于SQL注入题目数量多想深耕SQL注入的学习者Pikachu漏洞类型丰富界面友好刚入门想广泛接触漏洞的新手DVWA每个漏洞分4个难度级别攻防兼备想系统学习攻防全流程的学习者WebGoatOWASP官方出品Java生态对Java Web安全感兴趣的人DVWA的优势在于它既有广度覆盖10种漏洞又有深度每个漏洞4个难度级别是系统学习Web安全的绝佳选择。三、DVWA的核心设计理念3.1 十大核心模块DVWA包含十个核心漏洞模块序号模块名称中文名称漏洞类型1Brute Force暴力破解认证绕过2Command Injection命令注入代码执行3CSRF跨站请求伪造会话管理4File Inclusion文件包含文件操作5File Upload文件上传文件操作6Insecure CAPTCHA不安全的验证码逻辑漏洞7SQL InjectionSQL注入数据库注入8SQL Injection (Blind)SQL盲注数据库注入9XSS (Reflected)反射型XSS跨站脚本10XSS (Stored)存储型XSS跨站脚本3.2 四个安全级别从“裸奔”到“铜墙铁壁”DVWA最精妙的设计在于每个漏洞模块都提供4个安全级别级别含义特点Low无任何防护展示漏洞最原始的形态直接“裸奔”Medium基础防护有一定过滤但存在绕过可能演示典型防护误区High较强防护需要高级绕过技术呈现攻防对抗的复杂性Impossible最佳实践几乎无法利用展示彻底的防御方案这种设计让你可以从易到难逐步深入理解每个漏洞的原理、利用方式和防御方法。通过对比不同级别的源代码你能清晰地看到开发者是如何一步步加固应用的。四、手把手搭建DVWA靶场4.1 环境准备DVWA是基于PHP MySQL开发的Web应用所以我们需要一个能运行PHP和MySQL的环境。操作系统openEuler欧拉24.03 LTS欧拉操作系统openEuler是面向数字基础设施的开源操作系统支持服务器、云计算、边缘计算等多种应用场景。openEuler 24.03 LTS版本基于Linux Kernel 6.6构建对外接口遵循POSIX标准。推荐方案小皮面板phpStudy小皮面板原名phpStudy是国内老牌的PHP集成环境管理工具集成了Apache/Nginx、MySQL、PHP等核心组件。官方支持CentOS、Ubuntu、Debian、Fedora、Deepin等主流Linux发行版虽然openEuler不在官方明确支持的列表中但由于openEuler兼容主流Linux生态小皮面板的通用安装脚本依然可以正常运行。所需环境操作系统openEuler 24.03 LTS小皮面板phpStudy Linux版DVWA源码4.2 openEuler 24.03环境准备第一步切换root用户首先登录你的openEuler系统切换为root用户su root然后输入root密码。第二步安装依赖工具openEuler使用dnf作为包管理器安装wget等必要工具dnf install wget -y第三步关闭防火墙和SELinux为了避免后续访问出现问题建议先关闭防火墙和SELinux# 关闭防火墙 systemctl stop firewalld systemctl disable firewalld ​ # 临时关闭SELinux重启后失效 setenforce 0 ​ # 永久关闭SELinux需重启生效 sed -i s/^SELINUXenforcing/SELINUXdisabled/ /etc/selinux/config验证SELinux是否已关闭getenforce如果显示Disabled则表示已关闭。4.3 安装小皮面板第一步执行安装脚本使用SSH连接工具连接到你的openEuler服务器后执行以下命令开始安装大约2分钟完成面板安装curl -O https://dl.xp.cn/dl/xp/install.sh sudo bash install.sh第二步记录面板访问信息安装完成后终端会显示类似以下信息面板账户信息 面板版本: v1.5.9 外网面板地址: http://220.178.180.198:53694/de4dba 内网面板地址: http://10.0.0.149:53694/de4dba 面板账号: 41c90cee 面板密码: e043a3ab 面板注意事项 【云服务器】请在安全组放行53694端口 面板工具命令 xp 请务必记录下这些信息后续登录面板需要使用。第三步放行端口如需外网访问如果需要在局域网或外网访问小皮面板需要开放端口firewall-cmd --zonepublic --add-port端口/tcp --permanent firewall-cmd --reload4.4 登录小皮面板并安装基础套件第一步登录面板在浏览器中访问安装完成后显示的地址http://10.0.0.149:53694/de4dba使用默认账号 登录。第二步安装基础套件进入小皮面板安装网站运行的基础套件包含Apache/Nginx、MySQL、PHP等。选择推荐的套件点击一键安装即可。等待基础套件安装完成后你的Web运行环境就搭建完毕了。4.5 下载并部署DVWA第一步下载DVWA源码DVWA的官方源码托管在GitHub上。进入小皮面板的网站根目录执行cd /xp/www git clone https://github.com/digininja/DVWA.git如果git命令不可用先安装dnf install -y git第二步重命名目录为了便于访问将目录重命名为dvwamv DVWA dvwa第三步在小皮面板中添加站点登录小皮面板管理界面点击左侧菜单的“网站”点击“添加网站”选择手动创建点击下一步填写域名可以是你的服务器IP地址网站目录选择/xp/www/dvwaPHP版本选择7.3.xDVWA在PHP 7.3上运行最稳定PHP 8.x可能存在兼容性问题点击确定第四步创建配置文件DVWA提供了一个配置模板复制一份并重命名cd /xp/www/dvwa/config cp config.inc.php.dist config.inc.php第五步配置数据库连接编辑config.inc.php文件vim config.inc.php找到数据库配置部分修改为以下内容$_DVWA[ db_server ] 127.0.0.1; $_DVWA[ db_database ] dvwa; $_DVWA[ db_user ] root; // MySQL用户名 $_DVWA[ db_password ] root; // MySQL密码小皮面板默认root $_DVWA[ db_port ] 3306;第六步修改PHP配置DVWA需要开启PHP的某些配置项才能正常运行。直接在面板的软件管理中找到对应PHP版本点击设置进入php.ini编辑。找到以下几项配置将其修改为Onallow_url_fopen On allow_url_include On display_errors On display_startup_errors On保存后在小皮面板中重启PHP服务。第七步设置目录权限chown -R www:www /xp/www/dvwa chmod -R 755 /xp/www/dvwa第八步修改SQL文件由于mysql版本不支持ADD COLUMN IF NOT EXISTS所以防止报错去掉IF NOT EXISTS修改/xp/www/dvwa/dvwa/includes/DBMS/MySQL.php4.6 初始化DVWA以上所有配置完成后就可以初始化DVWA了。在浏览器中访问http://你的服务器IP/setup.php点击页面底部的“Create / Reset Database”按钮。系统会自动创建数据库和初始数据。4.7 登录DVWA初始化完成后页面会自动跳转到登录页或手动访问http://你的服务器IP/login.php使用默认账号登录用户名admin密码password五、界面导览登录成功后你会看到DVWA的主界面左侧导航栏列出了所有漏洞模块点击即可进入对应的练习页面。重要菜单DVWA Security设置当前的安全级别Low/Medium/High/ImpossibleView Source查看当前页面的PHP源代码边做边看源码才能理解漏洞原理Logout退出登录六、总结本文作为《DVWA从入门到精通》系列的开篇我们了解了DVWA的诞生背景与设计理念——一个始于2008年、包含十大核心模块和四个安全级别的全球知名Web安全练习靶场在openEuler欧拉24.03 LTS操作系统上完成了环境准备关闭了防火墙和SELinux使用小皮面板phpStudy一键部署了Web运行环境并安装了基础套件亲手部署了DVWA靶场——从下载源码、添加站点、配置数据库到初始化一步到位最后熟悉了DVWA的界面布局和基本操作。重要声明本教程及文中所有操作仅限于合法授权的安全学习与研究。作者及发布平台不承担因不当使用本教程所引发的任何直接或间接法律责任。请务必遵守中华人民共和国网络安全相关法律法规。如果这篇文章帮你解决了实操上的困惑别忘记点击点赞、分享也可以留言告诉我你遇到的其它问题我会尽快回复。你的关注是我坚持原创和细节共享的力量来源谢谢大家。