网安新手必练经典靶场DVWA,从“实战闯关”到“安全进阶”的实战指南
沧海讲安全
2026年8月27日 17:24
湖南
在小说阅读器读本章
去阅读
在公众号小说中沉浸阅读
我发现很多刚接触网络安全的朋友,在搭建好 DVWA 后,往往只把它当成一个单纯的“闯关游戏”,打完就不再碰了,这其实浪费了它一半的价值。
今天,带大家拆解几个最经典的关卡,看看真实的漏洞是如何被利用和修复的,并再带大家看看如何榨干这个经典靶场的每一滴价值。
实战拆解:经典关卡里的“攻防密码”
DVWA 最精妙的设计,是每个漏洞都提供了四个安全级别。
我们以几个经典关卡为例,看看真实的漏洞是如何被利用和修复的:
关卡一:Brute Force(暴力破解)
在这个关卡中,你需要尝试猜解登录密码。
- Low(裸奔状态):系统没有任何防护。你可以直接使用 Burp Suite 的 Intruder 模块,加载密码字典进行疯狂的“跑字典”测试,很快就能撞出正确密码。
- Medium(基础防御):开发者加了 sleep(2) 函数,每次登录失败会强制等待2秒,试图拖慢攻击速度。但这只是“掩耳盗铃”,攻击者依然可以通过开启多线程并发来绕过。
- High(Token 验证):系统引入了 user\_token 机制,每次登录都需要携带一个随机生成的 Token。这迫使攻击者不能单纯地爆破密码,而是需要编写脚本,每次请求前先抓取页面里的 Token,再带上 Token 和密码一起发送请求,大大增加了自动化攻击的难度。
关卡二: SQL Injection(SQL 注入)
- Low(直接拼接):输入 1' 页面直接报错,暴露了 SQL 语法错误。你可以轻松使用 1' UNION SELECT 1,2# 进行联合查询,把数据库里的表名、用户名和密码全部“脱”出来。
- Medium(简单过滤):代码对单引号进行了 mysql\_real\_escape\_string 转义。但开发者犯了一个致命错误:输入框变成了下拉菜单,且后端没有对数字型参数做严格校验。攻击者可以直接抓包,把 POST 请求里的 id=1 改成 id=1 UNION SELECT 1,2# 进行注入。
- High(严格过滤):代码限制了输入必须以数字开头,并过滤了注释符 #。但攻击者可以利用 MySQL 的特性,使用 %23(URL 编码的 #)或者利用报错注入、盲注等高级技巧,依然能绕过防御窃取数据。
关卡三: File Inclusion(文件包含)
- Low(任意包含):URL 参数 ?page=file1.php 完全可控。你可以输入 ?page=../../etc/passwd 跳出当前目录,读取 Linux 系统的核心密码文件;或者开启远程包含后,直接加载外网的恶意木马。。
- Medium(字符串替换):代码使用了 str\_replace 试图删除 ../。但这属于“黑名单”思维,攻击者只需使用“双写绕过”(如 ....//),当系统删除一次../后,剩下的字符刚好又拼成了 ../,轻松绕过。
- High(前缀限制):代码强制要求文件必须以 file 开头。但 PHP 提供了强大的伪协议,攻击者只需输入
?page=file://../../../etc/passwd,利用 file:// 协议就能无视前缀限制,依然能读取系统敏感文件。
文件包含漏洞中常用的 PHP 伪协议及其用法对照表
终极答案:Impossible 级别的防御美学
DVWA 的 Impossible(不可能) 级别是留给开发者的“标准答案”。在这个级别,你会看到业界标准的防御方案:
- 针对 SQL 注入:全面使用参数化查询(预编译),从根本上杜绝了拼接 SQL 的可能。
- 针对暴力破解:加入了严格的账号锁定机制和多因素认证(MFA)。
- 针对 CSRF:每次表单提交都强制校验动态 Anti-CSRF Token。
- 针对文件包含:采用了白名单机制,只允许包含列表内写死的合法文件。
对比 Low 级别的漏洞百出,Impossible 级别完美诠释了:所有的漏洞都源于对用户输入的不信任,而所有的防御都在于严谨的逻辑校验。
安全进阶:安全工程师核心能力跃迁
除了熟悉各种 Payload,想要真正完成蜕变,你还需要掌握以下三个进阶维度的知识:
1. 白盒代码审计与“数据流追踪”
不要只停留在黑盒测试。
- 打开源码,从用户输入点(如 $\_GET、$\_POST)出发,追踪数据是如何一步步流向危险函数(如 system()、eval())的。
这种“顺藤摸瓜”的审计思维,是未来挖掘 0day 漏洞的核心能力。
2. 漏洞组合利用(链式攻击)
在真实的渗透测试中,单一漏洞往往很难直接拿下权限。你可以尝试在 DVWA 中演练“组合拳”,例如:
- 先通过 SQL 注入读取文件上传的配置路径,再针对性地构造木马进行上传,最后利用命令注入执行反弹 Shell。
3. 安全隔离与底层配置
搭建 DVWA 本身就是一个极好的运维实践。
- 通过 Docker 容器化部署,或者在虚拟机中搭建隔离的局域网环境,能让你深刻理解网络隔离机制。
- 同时,在配置 php.ini 时关闭危险函数、为数据库创建弱权限账号,能让你提前熟悉生产环境的安全加固规范。
说白了,DVWA 就是个“试错不犯法”的绝佳练兵场。别光顾着拿工具扫几个漏洞就觉得自己出师了,一定要多去翻翻源码,看看人家到底是怎么写代码出错的,又是怎么把漏洞堵上的。
「最后」
如果你真的想学好一门本事,首先就要考虑自己对这门技术的兴趣,没有天赋还能靠时间和努力去弥补,但如果没有兴趣加持,就很难坚持到最后。
你要是正打算尝试网安或者想努力一次,我把这些年用过的视频教程和学习笔记都梳理出来了,现在都无偿分享给大家,需要的找我拿就行(文末自取)。
现在哪个行业都不好走,如果没有学历也没有天赋,那就只有努力和坚持了,请相信相信的力量,共勉!
沧海专属黑客/网络攻防技术资料
@沧海讲安全:在安全圈待了十多年,已经积累了很多的技术教程,在计算机这个行业,如果不会主动学习,手里没点学习资料,注定是走不远的。我整理的这些资料包含了市场上主流的攻防技术,不说让你成为黑客大佬,帮助你从0到进阶网络安全技术问题不大。
平台铭感,拿资料、学技术看⬇(无偿共享)
部分技术资料预览
01
视频教程
从0到进阶主流攻防技术视频教程(包含红蓝对抗、CTF、HW等技术点)
02
书籍Pdf
入门必看攻防技术书籍pdf(书面上的技术书籍确实太多了,这些是我精选出来的)
03
安装包/源码
主要攻防会涉及到的工具安装包和项目源码(防止你看到这连基础的工具都还没有)
04
面试试题/经验
网络安全岗位面试经验总结(谁学技术不是为了赚$呢,找个好的岗位很重要)
平台铭感,拿资料、学技术看⬇(无偿共享)
@沧海讲安全:只要你是真心想学黑客/网络安全技术,我这份资料就可以无偿共享给你学习,但是想学技术去乱搞的人别来找我,目前全球网络环境日益紧张,我国在这方面的相关人才比较紧缺,网络安全行业确实也需要更多的有志之士加入进来,我也真心希望帮助大家学好这门技术,如果日后有啥学习上的问题,欢迎找我交流。
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。









评论