Web安全新人必看:DVWA等四大靶场系统化实操指南

发布时间:2026/10/19 4:41:17
Web安全新人必看:DVWA等四大靶场系统化实操指南 靶场这东西圈内人基本都有共识想在网络安全这行练出真本事但又不想把自己练进局子里就必须在合法环境里动手。很多新手一上来就想挖真网站的漏洞这想法很危险轻则被封IP重则真的涉嫌破坏计算机信息系统。正确的路子是先搭建一套本地靶场或者用开源的漏洞环境把Web安全的核心攻击手法比如SQL注入、XSS、文件上传绕过一个个滚瓜烂熟再考虑去SRC平台做合规的漏洞提交。这篇内容我就从自己当年踩坑的经历出发把我认为最适合网安新人系统化训练的四个靶场一次性讲透DVWA、SQLi-LAB、XSS-Labs和Upload-Labs。这套组合不是随便凑的它覆盖了Web安全方向最常见的四大类漏洞从综合环境到专项训练一步步从入门到实战把新手最容易卡壳的“不知道怎么下手”“不知道学完有什么用”的问题解决掉。不管你是完全零基础还是已经会点网络基础但没动过手这套方案都值得认真看。1. 内容整体设计与思路拆解为什么是这四个靶场先说个基本判断现在市面上的漏洞靶场很多有开源的有商业的也有在线平台。但多不等于好很多新手一开始就乱下载今天装这个明天玩那个结果哪个都只玩了个首页漏洞原理一问三不知。我这套方案的核心思路就是“一个综合靶场打底三个专项靶场逐点突破”。1.1 四个靶场分别扮演什么角色DVWA是综合型靶场里面几乎涵盖了Web渗透测试最常见的漏洞类型从SQL注入、XSS、CSRF到文件包含、文件上传、命令注入都有。它的最大价值是让你用“上帝视角”看整个Web安全版图。先通过DVWA把每种漏洞的基本原理、利用方式和防御思路过一遍你就知道哪些方向是自己感兴趣的。剩下三个靶场全是专项的SQLi-LAB专门练SQL注入。它把SQL注入按场景拆成了几十关从最基础的“单引号报错”到“时间盲注”“堆叠注入”“宽字节注入”每一关都对应真实世界中一种注入利用场景。你把SQLi-LAB刷完以后再遇到任何SQL注入点脑子里的攻击路径会很清晰。XSS-Labs是专门练跨站脚本攻击的靶场。它聚焦在反射型、存储型、DOM型XSS的利用和绕过上关卡设计层层递进后面几关还涉及各种过滤规则绕过非常锻炼你对“输入输出过滤”的理解。Upload-Labs是专门练文件上传漏洞的靶场。文件上传是Web渗透中拿服务器权限的高频入口这里面的每一关都模拟了服务端不同的校验姿势你能在本地合法地把“前端校验绕过”“Content-Type绕过”“黑名单绕过”“解析漏洞”这些手法全部撸一遍。1.2 这个组合能解决什么问题新手学Web安全最大的两个困境是“没有方向”和“没有真实攻击目标”。没有方向是因为知识体系太碎片化今天看一个SQL注入的帖子明天看一个XSS的短视频感觉什么都会一上手全忘。没有真实目标是因为道德和法律的红线摆在那里你不可能拿真实网站练手。用这套组合就能同时破局。首先DVWA给你的是全景专项靶场给你的是深度路线很清晰就算你跟着目录一个个执行也不会跑偏。其次这些靶场全部是本地运行环境你在自己的虚拟机里打它就像在射击场打靶完全合法。等你把靶场打得足够熟练养成了“看见参数就想测、看到上传点就判断逻辑”的肌肉记忆再去找SRC平台那时候你才算有点底气。注意这里的“实战”指的是实战环境不是让你真的搞破坏。无论你水平多高没有书面授权去测试任何非自己所有的系统都属于违法行为这一点希望每个新人都刻在脑子里。2. 核心靶场逐个拆解DVWA与SQLi-LAB这两个靶场一个管“面”一个管“线”是整套训练方案的地基。本章我把它们的环境搭建、关卡特点和实操要点掰开讲。2.1 DVWA训练要点先安装。DVWA的搭建目前最省事的方式是直接在虚拟机里装一个Linux系统然后通过Docker拉取镜像或者下载源码放到Web目录下。我用的是经典小皮面板加手动部署步骤不复杂装好PHP和MySQL把DVWA的源码解压到网站根目录然后改一下config文件里的数据库连接信息打开网页按提示初始化即可。新手如果不想折腾直接用Docker一杯启动也完全没问题。初始化完成后DVWA会有一个安全等级选择Low、Medium、High、Impossible。我见过很多新手直接选Low把里面所有漏洞挨个打一遍然后觉得Web安全太简单了。这个想法很错误。Low等级存在的意义是让你理解漏洞的逻辑而不是让你去炫耀技术。真正让你长本事的是Medium和High等级因为这两个等级模拟了真实站点常见的防御措施比如参数过滤、校验token、类型转换。你必须在这些限制下想办法绕过这才是渗透测试的真实体验。我在刷DVWA时一直强调“至少要跑两遍”。第一遍从Low开始目的是看懂每一种漏洞的攻击流程比如在SQL注入模块输入单引号导致页面报错在XSS模块输入弹窗脚本成功执行。第二遍强行要求自己只做High等级这时候你会被迫去查资料、思考如何构造闭合、如何绕过htmlspecialchars函数收获和第一遍完全不一样。除了SQL注入和XSSDVWA里还有一个非常值得深挖的模块——文件上传。Low等级就是直接上传一句话木马High等级则加了文件类型和内容校验。很多人在这里第一次体验到“拿到webshell”的快乐但我要提醒一句拿到webshell后不要急着用菜刀或各类工具去连接这是你的个人靶机但也要注意在自己可控范围内使用避免木马文件造成意外扩散。重点还是要回到漏洞原理本身明白为什么校验能被绕过。刷完DVWA你应该能做到看到后端代码能判断它用了哪种防御方式并且知道经典的绕过思路。如果这一步没做到先不要急着去下一个靶场基础不牢后面很痛苦。2.2 SQLi-LAB训练要点SQLi-LAB是我个人非常喜欢的靶场它把SQL注入的学习做成了“关卡制”目前有几十关每一关都像一个限时闯关游戏。它不像DVWA把环境弄得那么“大而全”而是专注到极致。也正因如此它特别适合用来集中攻克SQL注入。部署方式跟DVWA有点像我在本地用的是源码直接放入Web目录然后创建对应数据库。由于SQLi-LAB本身的提示信息非常丰富新手完全可以从第一关开始先尝试用单引号和双引号判断注入点再看页面报错信息然后挨个尝试联合查询、报错注入、布尔盲注、时间盲注。这里我分享一个非常关键的实操原则不要只看图快要自己动手写注入payload而不是直接复制网上的SQL语句。例如第一关你输入 id1 页面报错输入 id1 and 11 页面正常输入 id1 and 12 页面不正常这叫什么这叫逻辑判断注入。你必须亲手敲这些语句才能感受到“字符被拼接”的原理。我见过太多人用sqlmap一把梭导出一脱裤子就完事结果问他为什么报错注入用updatexml他答不上来。这对于做SRC挖洞是非常致命的因为sqlmap能跑出来不代表你能在白盒情况下分析漏洞。SQLi-LAB刷到中后段难度会陡增。比如宽字节注入它其实是针对GBK编码环境下的特殊绕过技巧很多新手会卡关。这时候我的建议是先看源码搞懂数据库编码再去搜一下宽字节注入的原理文章最后自己构造payload。这个过程会比直接看通关答案慢但你学到的是可迁移的思维方式而不是死记某个payload。另外我强烈建议本地装一套Burp Suite或类似工具用代理翻看每一次请求和响应搞清楚你发的payload到了服务端变成了什么。因为很多时候注入成功与否不在于你写了什么而在于服务端怎么拼了它。你只有亲眼看到请求体里的原始数据才能建立起“输入-处理-输出”的链路感知。刷完SQLi-LAB你应该达到这样的状态给一个存在注入点的URL你能手测出注入类型能判断是数字型还是字符型能选择最合理的注入方式去获取数据。虽然你还不一定能通俗解释所有盲注原理但至少你有了完整的“注入实操记忆体”。3. 进阶补强XSS-Labs与Upload-Labs有了前面两个靶场的基础你的攻击视野就不再是“只会拿着工具扫”而是有了一批真正理解底层原理的手艺。第三个和第四个靶场就是把手艺打磨得更锋利。3.1 XSS-Labs从弹窗到窃取凭证的完整链路XSS-Labs是专门为XSS设计的专项靶场关卡数量比DVWA多得多而且每一关都有不同的过滤和编码方式。它不像SQLi-LAB那样需要数据库交互它更关注“输入点”和“输出点”的复杂对抗。我在学XSS时最大的感触是很多人把它当玩笑觉得弹个alert框而已没什么威慑力。但其实XSS真正的威力藏在它在真实攻击链条中的位置通过XSS配合其他漏洞可以实现会话劫持、钓鱼、甚至针对管理员的CSRF。在XSS-Labs里前一半关卡是帮助你掌握基础包括直接插入script标签、通过img的onerror事件、利用大小写绕过、用注释符绕过闭合等。刷到中间你需要理解HTML实体编码、URL编码以及如何在过滤了尖括号的情况下利用事件属性触发脚本。这时候有一个好习惯准备一张白纸画一个“输入-过滤-输出”的流程图每做一关就标注清楚服务端到底过滤了什么用的是什么正则最后输出到哪个位置。画完十几关你会发现XSS的绕过逻辑本质就是“如何在保证代码语义不变的情况下绕过输入限制”。实操里我建议安装一个浏览器的“黑客工具类插件”或使用Burp的Repeater来观察响应。因为很多XSS触发条件很微妙比如你插入的payload如果在某些情况下被插入到了标签的属性值里那么你需要提前闭合一个引号如果被插入到了JavaScript代码块里又得考虑转义。这些都是肉眼追页面很难察觉的用代理看响应源码就一目了然。另外XSS-Labs里也有存储型XSS的关卡你可以实际体验到你提交的恶意脚本被保存在数据库中然后每次页面被访问时都会执行。理解了这个过程再去看那些真实安全事件里的“存储型XSS打管理员”就一点都不玄幻了。简单说XSS-Labs值得你花一周时间慢慢刷边刷边总结自己的绕过payload字典这个字典以后就是你在实战中宝贵的弹药库。3.2 Upload-Labs文件上传绕过的层层对抗文件上传漏洞是很多新手不太重视但在真实渗透里非常好用的一大类问题。Upload-Labs同样按照关卡模式设计每一关都是一种服务端校验组合。你一旦在所有关口中成功上传了可解析的脚本往往就代表着获得了Webshell权限而这恰恰是合法靶场中非常过瘾的部分。Upload-Labs的关卡从最简单的前端JS校验开始。这一关破解思路很简单利用Burp拦截上传请求重发并在返回结果前修改文件后缀或者干脆把前端校验事件给禁掉。但别急着赶进度因为后面马上会迎来真正考验Content-Type校验、文件头校验、黑名单校验、白名单校验。每一关都要求你使用不同的绕过策略。刷到中后期你会接触到解析漏洞比如Apache的.htaccess上传Nginx的解析配置错误或者IIS的畸形解析。这些漏洞在现代环境中不一定还普遍存在但理解它们的原理能让你在分析一个真实站点时更快地判断出它是否存在同类风险。很多SRC漏洞实际上就是文件上传功能没有做好服务端校验导致了后续的任意文件写入。我在练习时习惯为每个关卡专门建一个实验文件夹然后记录下这个关卡的校验代码片段、我的绕过payload、最终上传成功的文件内容。这份记录比任何教程都有价值因为它包含了我自己尝试时的完整路径。我也强烈建议你这样做不要只看通关截图要自己创建一个本地文件反复尝试。当然这里必须再提醒一句安全问题Upload-Labs靶场内获得的Webshell只能在个人运行的靶机环境中使用千万别扩散到公共网络更不要拿去做任何未授权的操作。所有的实验网络应该和常用办公网络隔离防止练习用的恶意文件污染到别的设备这是我自己经常给线下带的学员强调的一点。4. 实操过程与核心环节实现一套可落地的刷靶场训练计划靶场再全如果学习毫无章法也不行。我见过太多人下载了四五个靶场然后三天打鱼两天晒网最后只会在靶场首页点点菜单。针对这种情况我给你一套我自用的训练计划这套计划带过几个新人效果都还不错。4.1 环境搭建虚拟机隔离是底线动手之前先把网络连通性这件事想清楚。我推荐的方案是装一个VMware或VirtualBox虚拟机在虚拟机里安装一个Linux发行版比如Ubuntu或Kali Linux然后把靶场环境全部装在虚拟机内部宿主机只做Web页面访问。这个做法的好处是整套漏洞环境与宿主机完全隔离就算你在靶场里执行了恶意代码或者上传了木马最多也只是污染虚拟机宿主机不会受影响。另外我建议在同一台虚拟机内安装好常用的工具链浏览器开发者工具、Burp Suite、sqlmap可暂时不装、一个支持代码高亮的编辑器。工具够用即可不要一开始就堆一大堆“黑客工具”那样只会分散你的注意力。4.2 四周渐进式训练计划第一周DVWA打底。目标是完成DVWA所有模块一遍要求至少做到Low和High各一遍并且为每种漏洞写不少于两百字的原理记录。这周不要追求“打到Impossible”而是把每个漏洞的利用逻辑搞清楚。第二周专攻SQLi-LAB。目标是刷完前二十关不可使用sqlmap自动跑必须手动构造payload。每三关做一次小结记录注入点类型、利用方式、获取的数据库信息例子。第二周结束你应该能够手测出一个注入点并判断类型。第三周进入XSS-Labs。目标是刷完至少十五关每关都要记录“过滤了什么、我怎么绕过的”。第三周末尾复盘一下自己总结出的绕过字典然后回到DVWA的XSS模块试一试能否在High等级下成功利用。第四周挑战Upload-Labs。目标是把Upload-Labs刷完整并且写一篇关于文件上传绕过思路的个人总结。这时候如果你精力充裕可以回头把DVWA里所有模块用更大胆的思路再测一遍比如尝试组合漏洞利用。四周之后你不一定记得每一个payload但你会拥有一套属于自己的笔记上面全是亲历的“为什么”。这份笔记比任何证书都更能证明你的实战水平。4.3 从靶场到SRC如何把训练成果转化成漏洞挖掘能力很多新人刷完靶场下一步就想直接去SRC平台挖洞这个方向没问题但中间还差一步学会怎么把靶场经验迁移到真实环境。真实环境要比靶场复杂得多它没有通关标签也没有源码可看而且你只能测试自己选定目标范围内且获得授权的功能点。我个人的实战心得是在刷靶场的时候就要刻意培养“信息收集”的习惯。比如做SQLi-LAB时不要只盯着目标参数id还可以去看看这个页面有没有其他参数在做Upload-Labs时可以去看看上传功能有没有附带文件名回显、路径泄露等问题。这些“额外发现”其实就是SRC漏洞挖掘中的“低危信息泄露”或“逻辑漏洞”雏形。等到你准备去SRC平台第一件事是仔细阅读平台规则搞清楚哪些类型的漏洞是合法的哪些资产范围是允许的。另外一定要选择清除边界比如测试登录功能时绝对不要触碰其他用户的真实数据不要试图越权查看他人订单。你要做的是证明漏洞存在的合理验证点到为止。请记住SRC挖洞的核心是“证明危害”而不是“利用危害”。深入利用一旦越界你将面对法律风险。5. 常见问题与排查技巧实录刷靶场的过程中很多人会在环境搭建和漏洞利用上卡很久。这里我整理了几个我自己带新人时被问得最多的问题还有对应的解决思路希望对你有用。常见问题可能原因解决方案靶场页面打开报数据库连接错误配置文件未修改数据库密码不对检查靶场源码中的配置文件确认MySQL账号密码和库名SQLi-LAB前面关卡能通后面突然全乱码页面编码不是UTF-8服务端用的GBK浏览器手动切换编码或观察源码中字符集声明XSS payload被过滤直接显示为文本服务端使用了htmlspecialchars或类似过滤分析过滤规则尝试事件属性、编码、不带尖括号的payload上传一句话木马之后访问却无法解析上传目录没有执行权限或确认了白名单后缀查看上传目录是否有php解析权限尝试配合解析漏洞Burp拦截不到本地靶场的请求浏览器没有设置代理或代理端口不对配置浏览器代理指向Burp默认端口并关闭系统代理干扰5.1 别让“工具依赖”毁了你的基本功我必须单独提一下sqlmap和各类自动化工具。它们是非常强大的工具但新人在没有完全理解底层逻辑的情况下使用就是给自己埋坑。举个例子用sqlmap跑一个布尔盲注它会产生大量请求你需要看懂它为什么用条件真和条件假的响应来差别判断。如果你只会输入sqlmap -u http://xxx/?id1 --dbs然后看输出你永远不会知道报错注入原理、堆叠注入原理。你只是在数据层面拿到了结果但过程是黑盒。我的经验是第一轮刷靶场完全禁用自动化工具全部手搓。第二轮可以用自动化工具但前提是你能解释它发出的每一个请求是什么意思。到了真实SRC测试时工具结合手测效率和安全度反而更高。这个顺序一定不要搞反。5.2 靶场训练之外的法律边界与职业操守最后这部分我想认真说几句不那么“技术”的话。我在带人的时候看到过一些学员刷完靶场跃跃欲试转身就去测试某个网站还在那儿发朋友圈炫耀。这种苗头必须立刻掐灭。学习黑客技术的目的是增强防护能力、挖掘漏洞帮助厂商修复而不是炫耀攻击能力。无论你技术多么高超未经授权对任何系统进行渗透测试都是违法这点没有灰色地带。我自己的习惯是只要是对互联网上公网资产进行安全测试哪怕这个资产是朋友公司的我也要拿到对方明确的书面授权并且限定测试时间和范围。这不仅是法律问题也是职业道德。一个真正优秀的网络安全从业者不是在圈内吹嘘自己打穿过多少站点而是他发现了多少漏洞且合规地报告了多少漏洞。合法的靶场就是让你在安全线内磨炼技术的最佳场所。等你技术成熟后可以参与一些正规的众测项目、SRC项目与厂商形成合法授权关系那时候你再发挥你的技术价值才算真正走在了正道上。刷完这四个靶场我自己的体会是技术水平倒是其次最重要的其实是建立了一个清晰的安全思维框架——遇到功能就想到对应攻击面看到输入点就想到注入与XSS看到上传点就想到解析与绕过。这个框架会在你日后的学习、挖洞、防护工作中持续发挥威力。最后再分享一个小技巧每个靶场刷完不要急着删掉环境留着它过一个月再去挑战一次看看自己有没有新的思路。同样的关卡不同阶段的你打出来的payload和体会是完全不一样的。这种对比是进步最好的量尺。

关于本文作者

来自尧图内容编辑团队

尧图内容编辑团队 内容团队

尧图内容编辑团队

本文由尧图网络内容编辑团队执笔。团队由资深项目经理、前端工程师与设计师组成,所有内容均来自亲手交付的真实项目,先讲清问题、再给出可落地的解法。尧图深耕北京网站建设十年,服务过京华建材集团、智造科技等各行业客户,把一线经验沉淀为可复用的行业观察。

  • 十年建站经验,覆盖建材、制造、服务、文创等
  • 项目经理把关选题与事实准确性
  • 工程师与设计师联合撰写专业细节
  • 统一编辑规范,保证文风与排版一致
  • 每月复盘转化数据,迭代选题方向

延伸阅读

相关资讯与近期热门内容

深度阅读推荐

建站决策前值得细读的三篇

网站改版的5个关键决策
2024-08-12

网站改版的5个关键决策

什么时候该改版、改到什么程度、如何避免流量掉光,京华建材集团改版复盘给出答案。

获取专属建站方案

看完文章,把您的行业与预算告诉我们,免费获取一份量身定制的官网建设方案与报价。

立即免费咨询