FEATURED · 精选文章

网络安全入门实战:DVWA、Pikachu、Upload-Labs、VulnHub四大靶场搭建与攻防指南

发布时间 / 2026/8/9 15:18:36
来源 / 创域科博编辑部
栏目 / 资讯中心
网络安全入门实战:DVWA、Pikachu、Upload-Labs、VulnHub四大靶场搭建与攻防指南 这次我们来看四个对网络安全新手和小白极其友好的实战靶场。如果你正在学习网络安全、渗透测试或CTF但苦于没有接近真实环境的练习平台或者担心在真实网络中测试会触犯法律那么本地或在线靶场就是你的最佳选择。它们能让你在一个安全、合法的沙箱环境中从基础漏洞到高级攻击手法进行系统性训练。本文重点不是空谈理论而是直接告诉你这四个靶场分别是什么、能解决什么问题、硬件和软件门槛如何、怎么快速搭建或访问以及每个靶场最适合练习哪些技能。我们会涵盖DVWA、Pikachu、Upload-Labs和VulnHub这四大经典它们覆盖了从Web漏洞、文件上传、SQL注入到综合渗透的完整路径。无论你是想入门信息安全准备面试还是备战CTF比赛收藏这份指南都能帮你快速找到适合自己当前阶段的实战环境。1. 核心能力速览四大靶场定位与门槛在深入每个靶场之前我们先通过一个表格快速了解它们的核心定位、部署方式和主要功能方便你根据自身情况选择。靶场名称核心定位与特点部署方式与门槛主要训练漏洞类型适合人群DVWA (Damn Vulnerable Web Application)Web漏洞入门标杆故意设计为不安全的PHP/MySQL应用漏洞等级可调。本地部署需PHP、MySQL、Web服务器或使用Docker一键化环境。对系统资源要求极低。SQL注入、XSS、文件包含、命令执行、CSRF、暴力破解等。零基础新手Web安全初学者。Pikachu (皮卡丘)中文友好、漏洞场景化的靶场每个漏洞都有详细说明和通关提示学习曲线平缓。本地部署PHPMySQL提供集成环境包部署简单。覆盖DVWA大部分漏洞并增加越权、SSRF、反序列化等中高级漏洞。中文学习者希望理解漏洞原理和利用场景的入门者。Upload-Labs文件上传漏洞专项训练场专注于攻克各种前端、后端文件上传防护机制。本地部署PHP环境结构简单一个项目专注一个漏洞类型。前端JS验证、MIME类型检查、文件内容检查、条件竞争、解析漏洞等20种上传绕过姿势。想深入掌握文件上传漏洞的渗透测试人员。VulnHub综合渗透实战平台提供大量接近真实环境的虚拟机镜像需要完整的渗透测试流程。下载OVA/VMDK等虚拟机文件用VMware/VirtualBox导入运行。对主机性能和磁盘空间有一定要求。系统提权、服务漏洞、内网渗透、漏洞利用链组合等真实场景。有一定基础希望进行综合性、实战化演练的中高级学习者。简单来说DVWA和Pikachu是你的“新手村”和“技能训练场”帮你打好Web漏洞基础Upload-Labs是你的“专项训练馆”让你在文件上传这个高频漏洞点上成为专家VulnHub则是你的“野外实战区”模拟真实网络环境挑战你的综合渗透能力。2. 适用场景与使用边界在开始搭建之前必须明确靶场的正确使用姿势和伦理边界。适用场景安全学习与教育在受控环境中理解漏洞原理、攻击手法和防御措施。技能验证与提升用于CTF赛前训练、安全岗位面试准备、渗透测试技能巩固。工具测试与研究安全研究人员或爱好者测试自己编写的漏洞利用工具或脚本的安全性。企业内部培训企业安全团队用于对开发、运维人员进行安全意识和技术培训。使用边界与安全警告绝对禁止对外攻击所有靶场必须部署在本地环境或隔离的虚拟网络中。严禁将存在漏洞的靶场服务暴露在公网这等同于主动提供一个攻击入口可能导致你的主机被他人入侵甚至被利用作为跳板攻击他人你将承担法律责任。仅用于授权测试靶场只能用于测试你自己搭建的环境。未经明确授权对任何非你自己拥有的系统进行渗透测试都是非法的。注意虚拟机网络模式运行VulnHub等虚拟机时建议使用“Host-Only”仅主机或“NAT”网络模式确保虚拟机与宿主机的物理网络隔离。及时更新与废弃对于长期运行的本地靶场注意其依赖组件如PHP、MySQL可能存在已知漏洞练习完毕后应及时关闭服务或删除环境。3. 环境准备与前置条件不同的靶场对基础环境的要求不同。下面列出通用和特定的准备清单。通用基础环境适用于DVWA, Pikachu, Upload-Labs操作系统Windows 10/11, Linux (Ubuntu/Debian/CentOS), macOS。推荐使用Windows或Ubuntu教程资源最丰富。Web服务器Apache 或 Nginx。对于新手使用集成环境包如XAMPP, PHPStudy是最佳选择它自动包含了PHP、MySQL和Web服务器。PHP环境需要PHP版本需与靶场要求匹配一般PHP 5.4/7.x均可并开启必要的扩展如gd,mysqli。数据库MySQL 或 MariaDB。浏览器Chrome 或 Firefox并安装开发者工具F12和渗透测试插件如HackBar, FoxyProxy这不是必须但强烈推荐。VulnHub专项环境虚拟化软件VMware WorkstationPlayer版免费或 Oracle VirtualBox免费。这是运行VulnHub镜像的必备条件。主机性能建议主机内存8GB以上为虚拟机分配2-4GB内存磁盘空间预留20GB以上用于存放虚拟机文件。攻击机系统通常需要另一台虚拟机作为攻击机推荐安装Kali Linux渗透测试专用系统。工具准备非必须但推荐渗透测试工具集Burp Suite社区版免费、SQLMap、Nmap、Metasploit等。这些工具在攻击VulnHub靶场时几乎是必需品。代码编辑器用于查看和修改靶场源码理解漏洞成因如VS Code、Sublime Text。4. 安装部署与启动方式4.1 DVWA 靶场部署方案一使用 Docker最快最干净推荐Docker能避免环境冲突一键启动。# 拉取DVWA镜像 docker pull vulnerables/web-dvwa # 运行容器将容器80端口映射到宿主机的8080端口 docker run -d -p 8080:80 --name dvwa vulnerables/web-dvwa启动后在浏览器访问http://localhost:8080即可。默认登录账号/密码admin/password。方案二使用 XAMPP/PHPStudyWindows用户友好下载并安装 XAMPP 。启动XAMPP控制面板开启Apache和MySQL服务。从DVWA官网或GitHub下载源码解压到XAMPP的htdocs目录下例如C:\xampp\htdocs\dvwa。访问http://localhost/dvwa。根据页面提示修改config/config.inc.php文件中的数据库密码默认密码为空并点击页面下方的“Create/Reset Database”按钮初始化数据库。4.2 Pikachu 靶场部署Pikachu部署与DVWA类似通常也使用集成环境。确保你的PHPStudy或XAMPP已运行。从GitHub下载Pikachu源码解压到Web根目录如C:\phpstudy_pro\WWW\pikachu。访问http://localhost/pikachu。首次访问会提示数据库未初始化点击链接进行安装即可。安装后刷新页面即可使用无需登录。4.3 Upload-Labs 靶场部署Upload-Labs结构更简单。将下载的Upload-Labs源码文件夹放入Web根目录如C:\xampp\htdocs\upload-labs。访问http://localhost/upload-labs或对应目录。通常无需数据库直接可以看到通关挑战列表。4.4 VulnHub 靶场部署VulnHub的部署是“下载-导入-启动”模式。下载镜像访问 VulnHub官网 选择适合你水平的靶机如“DC”系列、“Kioptrix”系列下载其OVA或7z压缩包。导入虚拟机如果是OVA文件在VMware中直接选择“文件”-“打开”找到OVA文件导入。如果是压缩包先解压得到VMDK等文件在VMware中创建新虚拟机选择“自定义”在磁盘选项中选择“使用现有虚拟磁盘”指向解压出的VMDK文件。配置网络将靶机虚拟机的网络适配器设置为“NAT模式”或“仅主机模式”。启动与发现启动靶机。通常靶机会自动获取IP。你需要在自己的攻击机如Kali Linux上使用nmap等工具扫描同一网段发现靶机的IP地址这是实战的第一步。5. 功能测试与效果验证部署成功后关键是通过实际练习验证靶场是否工作正常并开始你的学习之旅。5.1 DVWA 功能验证测试目的验证基础Web漏洞环境是否就绪并体验难度分级。操作步骤访问http://localhost:8080并登录。在左侧菜单点击“DVWA Security”将安全级别从“Impossible”调至“Low”。这决定了漏洞利用的难度。点击“SQL Injection”在输入框输入1并提交。如果页面返回数据库错误信息说明SQL注入漏洞存在且环境正常。尝试经典的注入Payload1 or 11应该能列出所有用户数据。预期结果能够成功触发SQL注入并看到数据库的敏感信息如用户密码哈希值。判断成功能通过简单的注入语句获取非预期的数据输出。常见失败页面无变化或跳转。检查PHP的magic_quotes_gpc设置旧版PHP或安全级别是否在“Impossible”。5.2 Pikachu 功能验证测试目的验证中文靶场功能并利用其提示功能。操作步骤访问Pikachu首页点击“SQL注入” - “基于错误的注入(get)” 。在输入框随意输入一个ID如1点击“查看”按钮。观察URL变化和页面回显。然后输入测试Payload1。页面很可能会显示详细的SQL语法错误这正是“基于错误的注入”的典型特征。同时Pikachu页面下方通常会给出漏洞原理和利用提示。预期结果输入畸形参数后页面返回数据库错误信息证明漏洞存在。判断成功看到明确的SQL错误并能根据提示思考下一步利用方法。5.3 Upload-Labs 功能验证测试目的验证文件上传功能尝试最简单的绕过。操作步骤访问Upload-Labs第一关。准备一个简单的PHP一句话木马文件shell.php内容为 。直接点击上传。第一关通常只做前端JS验证。如果被浏览器拦截可以尝试将文件后缀改为.jpg然后使用Burp Suite抓包再修改回.php进行绕过。预期结果成功上传PHP文件并返回文件在服务器上的存储路径。判断成功能访问上传的PHP文件路径如http://localhost/upload-labs/upload/shell.php虽然可能没有回显但证明上传成功。5.4 VulnHub 功能验证测试目的完成一次完整的靶机发现和初步信息收集。操作步骤启动靶机如Kioptrix Level 1和你的Kali Linux攻击机确保两者网络互通同属NAT或仅主机网络。在Kali中打开终端使用ifconfig查看自己的IP如192.168.xx.xx。使用Nmap扫描同网段存活主机nmap -sn 192.168.xx.0/24。找到除了自己IP外的另一个活跃IP即靶机IP。对靶机IP进行端口扫描和服务识别nmap -sV -sC -p- 靶机IP。预期结果发现靶机开放了诸如80HTTP、22SSH、21FTP等端口并识别出服务的具体版本如Apache 2.2.8。判断成功成功发现靶机IP并获取其开放的端口和服务信息这是渗透测试的第一步。6. 学习路径与靶场结合策略单纯搭建靶场不够需要有计划地使用它们来提升技能。阶段一Web安全基础 (使用 DVWA/Pikachu)暴力破解学习使用Burp Suite的Intruder模块进行字典攻击。SQL注入从报错注入、联合查询注入到盲注并尝试使用SQLMap自动化工具。XSS练习反射型、存储型XSS构造Payload盗取Cookie。CSRF理解跨站请求伪造的原理并构造攻击页面。文件包含利用本地文件包含LFI读取系统文件尝试远程文件包含RFI。命令执行通过Web应用漏洞在服务器上执行系统命令。阶段二漏洞专项深入 (使用 Upload-Labs)逐关攻克Upload-Labs的20个挑战。每关记录绕过方法前端绕过、MIME类型、黑名单/白名单、.htaccess、条件竞争、二次渲染等。尝试将多种绕过技术组合使用。阶段三综合渗透实战 (使用 VulnHub)从简单的靶机开始如Kioptrix系列。遵循标准流程信息收集 - 漏洞扫描 - 漏洞利用 - 获取初始权限 - 权限提升 - 内网渗透如果涉及- 清理痕迹。为每个攻克的靶机撰写详细的渗透测试报告记录每一步的命令、思路和结果。7. 资源占用与性能观察靶场本身资源占用不高但运行方式不同对系统的影响也不同。DVWA/Pikachu/Upload-Labs (本地PHP环境)内存占用主要取决于你的PHP集成环境如XAMPP。通常Apache和MySQL服务会常驻内存总占用在200-500MB左右。CPU占用平时几乎无占用仅在处理请求时会有短暂波动。磁盘空间靶场源码本身很小几MB到几十MB但集成环境安装包和数据库会占用几百MB到1GB空间。管理建议练习完毕后可以通过集成环境控制面板停止Apache和MySQL服务以释放内存。DVWA (Docker方式)资源占用Docker容器会占用额外内存但更隔离。一个DVWA容器运行约占用100-200MB内存。启动速度首次拉取镜像较慢后续启动容器几乎是秒级。清理使用docker stop dvwa和docker rm dvwa可彻底清理无残留。VulnHub (虚拟机方式)内存占用这是资源消耗大户。一个靶机虚拟机通常需要分配1-2GB内存加上宿主系统和其他软件建议主机总内存不低于8GB。CPU占用虚拟机运行时CPU会有持续占用尤其是当靶机运行多个服务时。磁盘空间每个虚拟机镜像文件从几百MB到几个GB不等需要预留充足空间。性能建议在不练习时务必关闭虚拟机以释放资源。可以为不同的靶机创建虚拟机快照方便快速恢复到初始状态。8. 常见问题与排查方法在搭建和使用过程中你可能会遇到以下问题。问题现象可能原因排查方式解决方案访问localhost显示404或无法连接Web服务器未启动项目未放在正确目录。检查XAMPP/Apache服务是否运行检查项目文件夹是否在htdocs或WWW下。启动服务将项目移动到Web根目录。DVWA/Pikachu 页面显示数据库连接错误数据库服务未启动配置文件密码错误。检查MySQL服务是否运行检查config.inc.php中的数据库密码是否与MySQL root密码一致。启动MySQL服务修改配置文件中的密码。Upload-Labs 上传文件失败无错误提示服务器上传目录权限不足PHP配置限制了上传。检查upload-labs下的upload目录是否有写入权限查看PHP配置文件php.ini中的file_uploads,upload_max_filesize等设置。修改目录权限为可写调整php.ini配置后重启Web服务。VulnHub 虚拟机启动后无法获取IP虚拟机网络配置错误DHCP未分配IP。检查虚拟机网络设置是否为NAT或仅主机在虚拟机内运行ifconfig或ip addr查看。确保网络适配器设置正确尝试重启虚拟机网络服务sudo systemctl restart networking。Kali 无法 ping 通 VulnHub 靶机两者不在同一网段防火墙阻止。分别查看Kali和靶机的IP地址判断是否在同一子网如192.168.1.x。将两者网络模式设置为同一类型如都使用VMnet8的NAT模式检查靶机防火墙是否关闭。使用SQLMap等工具扫描本地靶场时工具无响应或报错工具配置或语法错误靶场有防CSRF令牌等机制。检查命令语法使用Burp Suite抓取一个正常请求保存为文件用-r参数让SQLMap读取该文件。学习SQLMap的--csrf-token、--cookie等参数用法以处理复杂的请求。9. 最佳实践与使用建议为了让你的靶场学习之旅更高效、更安全遵循以下建议环境隔离强烈建议在虚拟机中搭建你的整个学习环境包括攻击机和靶场服务器。这样即使操作失误导致系统崩溃也可以快速恢复快照不影响宿主机。做好笔记为每个攻克的漏洞或靶机记录详细笔记。包括漏洞原理、利用步骤、使用的命令、遇到的坑和解决方案。这将是属于你自己的宝贵知识库。理解原理优先于工具在DVWA/Pikachu中先尝试手动构造Payload理解每一步发生了什么再使用SQLMap、Burp Suite等工具进行自动化验证。工具是能力的放大器不是替代品。从低难度到高难度在DVWA中从“Low”级别开始逐步提高到“High”和“Impossible”理解不同防护级别的绕过思路。对于VulnHub从评分低、下载量高的入门靶机开始。参考官方文档和Writeup遇到卡关时可以搜索该靶场的官方文档或其他人写的解题报告Writeup。但务必先自己思考尝试再看答案并复现一遍。法律与道德红线再次强调所有练习必须在你自己搭建的本地或虚拟环境中进行。你的技能应该用于保护系统而不是破坏它。10. 总结与下一步这四个靶场构成了一个从入门到进阶的完整网络安全实战训练体系。DVWA为你提供了最标准的Web漏洞沙箱Pikachu用中文和场景化降低了理解门槛Upload-Labs让你在文件上传这个专项上深度钻研而VulnHub则将你带入接近真实的攻防对抗环境。最值得你立刻尝试的无疑是DVWA。它的低门槛和可调节难度能让你在几小时内就感受到“发现并利用一个漏洞”的完整过程。最容易踩的坑通常是环境配置按照本文的Docker或PHPStudy方案能极大避免这个问题。下一步你可以横向拓展在熟练掌握这些靶场后可以探索其他优秀靶场如bWAPP、WebGoat、HackTheBox在线等接触更多漏洞类型和场景。纵向深入针对某个感兴趣的漏洞类型如反序列化、逻辑漏洞寻找专门的靶场或CTF题目进行集中训练。知识体系化将靶场中学到的零散知识点对应到OSI七层模型、OWASP Top 10等安全框架中形成自己的知识树。转向实战在充分掌握技能并严格遵守法律的前提下可以尝试参加一些合法的众测平台或CTF比赛在更广阔的环境中检验自己。收藏这篇文章当你需要搭建一个练习环境时随时可以回来按图索骥。记住在安全的道路上合法的练习是通往专业的唯一捷径。
RELATED — 相关阅读

相关资讯

LATEST — 最新资讯

最新发布

TODAY — 本日精选

新闻

WEEKLY — 本周精选

新闻

MONTHLY — 本月精选

新闻