运维知识
悠悠
2025年11月16日

别再瞎折腾了!这些Web渗透靶场让你从菜鸟变大神

最近有朋友问我,想学Web渗透测试但不知道从哪里下手,网上的教程看了一堆,理论倒是懂了不少,可一到实际操作就抓瞎。说实话,这种情况我见得太多了,就像学游泳一样,光看视频是永远学不会的,必须得下水扑腾几下才行。

Web渗透测试这个领域,实践比理论重要得多。你可以把SQL注入的原理背得滚瓜烂熟,但如果没有在真实环境中操作过,遇到实际情况还是会懵圈。这时候靶场就显得特别重要了,它们提供了一个安全的练习环境,让你可以放心大胆地去"搞破坏"。

我自己这些年也折腾过不少靶场,有些确实不错,有些就比较坑了。今天就跟大家分享一下我用过的那些靶场,包括详细的搭建过程,希望能帮到想入门或者提升技能的朋友们。

DVWA - 我的启蒙老师

说到Web渗透靶场,DVWA(Damn Vulnerable Web Application)绝对是绕不开的。这个靶场我第一次接触是在大学时期,当时对网络安全一窍不通,就是觉得黑客很酷想学学。

DVWA最大的优点就是简单直接,而且搭建起来也不复杂。它把常见的Web漏洞都集中在一个应用里,包括SQL注入、XSS、CSRF、文件上传漏洞等等。更贴心的是,每个漏洞都有四个难度级别:Low、Medium、High和Impossible。

DVWA搭建教程

搭建DVWA有好几种方式,我推荐用Docker,简单粗暴。

方法一:Docker部署(推荐)

# 拉取镜像
docker pull vulnerables/web-dvwa

# 运行容器
docker run --rm -it -p 80:80 vulnerables/web-dvwa

image-20251116212920728

image-20251116212950874

就这么简单,打开浏览器访问http://localhost就能看到DVWA了。默认用户名是admin,密码是password。

image-20251116213032841

点击create database,创建靶场

image-20251116213124343

方法二:传统部署

如果你不想用Docker,也可以手动搭建:

  1. 先准备LAMP环境(Linux + Apache + MySQL + PHP)
  2. 从GitHub下载DVWA源码:git clone https://github.com/digininja/DVWA.git
  3. 把代码放到Apache的web目录下
  4. 修改配置文件config/config.inc.php.dist,重命名为config.inc.php
  5. 创建数据库,访问setup页面初始化

说实话,第二种方法比较麻烦,特别是在Windows上搭建,各种环境问题能把人搞疯。我当年就是这么过来的,踩了无数坑。

我记得当时第一次成功执行SQL注入的时候,那种兴奋感真的无法形容。在Low级别下,你甚至可以直接在输入框里输入1' or '1'='1这种最基础的payload就能成功,虽然现在看来很幼稚,但对新手来说这种成就感是很重要的。

WebGoat - 教学式的好帮手

WebGoat是OWASP项目下的一个靶场,说实话刚开始我对它印象一般,觉得太"教学化"了。但后来发现,正是这种教学化的设计让它变得很有价值。

WebGoat搭建过程

WebGoat基于Java开发,搭建相对简单:

方法一:直接运行JAR包

# 下载最新版本的jar包
wget https://github.com/WebGoat/WebGoat/releases/download/v8.2.2/webgoat-server-8.2.2.jar

# 运行
java -jar webgoat-server-8.2.2.jar --server.port=8080

访问http://localhost:8080/WebGoat就可以了,需要先注册一个账号。

方法二:Docker部署

docker run -p 8080:8080 -t webgoat/goatandwolf

image-20251116213224836

image-20251116213317248

image-20251116213455920

这个镜像同时包含了WebGoat和WebWolf,WebWolf是一个辅助工具,可以帮你接收邮件、查看请求等。

这个靶场最大的特点就是每个漏洞都有详细的说明和提示,就像有个老师在旁边指导你一样。比如在练习SQL注入的时候,它会告诉你应该关注哪些地方,可能的注入点在哪里,甚至会给出一些提示让你思考。

我特别喜欢WebGoat的一点是它会跟踪你的学习进度,完成一个挑战后会有明确的反馈。这种游戏化的设计让学习过程不那么枯燥。

bWAPP - 漏洞的百科全书

bWAPP(buggy Web Application)这个靶场我是在工作后才接触到的,当时公司要做安全培训,同事推荐的。这个靶场最大的特点就是漏洞种类多,号称包含了100多种Web漏洞。

bWAPP搭建指南

bWAPP基于PHP开发,搭建过程:

使用Docker(最简单)

docker run -d -p 80:80 raesene/bwapp

image-20251116213525566

手动搭建

  1. 下载源码:git clone https://github.com/ethicalhack3r/bWAPP.git
  2. 配置LAMP环境
  3. 修改admin/settings.php中的数据库配置
  4. 访问install.php进行初始化

我记得第一次打开bWAPP的时候被它的漏洞列表震惊了,密密麻麻一大堆,从A1到A10(OWASP Top 10)都有覆盖,还有很多其他类型的漏洞。不过这也是它的问题,选择太多反而不知道从哪里开始。

有个小技巧,bWAPP可以设置不同的安全级别,建议从low开始练习,逐步提高难度。

Mutillidae - 界面友好的练习场

Mutillidae这个靶场我是偶然发现的,当时在找一个界面比较现代的练习环境,DVWA的界面实在是太丑了。Mutillidae的界面确实好看一些,而且功能也很全面。

Mutillidae部署方法

Docker方式

docker run -d -p 80:80 -p 3306:3306 citizenstig/nowasp

这个镜像包含了完整的LAMP环境和Mutillidae。

image-20251116213804457

image-20251116214317943

手动安装

  1. 准备LAMP环境
  2. 下载源码到web目录
  3. 访问应用,按照提示配置数据库
  4. 重置数据库到默认状态

Mutillidae有个很贴心的功能,就是可以随时重置数据库,这样你搞坏了什么都不用担心。而且它还有提示系统,可以给新手一些指导。

我在练习文件上传漏洞的时候,Mutillidae的环境帮了很大忙。它不仅有基础的文件上传,还有各种绕过技巧的练习,比如修改文件扩展名、MIME类型绕过等等。

Pikachu - 国产精品靶场

说到国产靶场,Pikachu绝对值得一提。这是国内安全研究者开发的,最大的优势就是有中文文档,对国内用户很友好。

Pikachu搭建教程

Docker部署

docker pull area39/pikachu
docker run -d -p 80:80 area39/pikachu

源码部署

git clone https://github.com/zhuifengshaonianhanlu/pikachu.git

然后配置好PHP环境,修改数据库连接信息就可以了。

image-20251116214624282

Pikachu的漏洞分类很清晰,包括暴力破解、XSS、SQL注入、RCE、文件包含等等。每个分类下面又有不同的子类型,比如SQL注入就分为数字型、字符型、搜索型等等。

我特别喜欢它的一点是每个漏洞都有相应的源码展示,你可以直接看到漏洞是怎么产生的,这对理解漏洞原理很有帮助。

VulnHub - 综合实战平台

VulnHub严格来说不是一个靶场,而是一个靶机集合平台。上面有各种各样的虚拟机镜像,每个都是一个完整的渗透测试环境。

VulnHub使用方法

  1. 访问vulnhub.com
  2. 选择合适难度的靶机
  3. 下载虚拟机镜像
  4. 用VMware或VirtualBox导入
  5. 配置网络环境开始渗透

我推荐几个适合新手的靶机:

  • Metasploitable 2:经典入门靶机
  • DVWA:就是前面说的那个
  • BasicPentesting:专门为初学者设计

VulnHub的好处是每个靶机都有完整的渗透路径,从信息收集到权限提升,是一个完整的渗透测试流程。不像前面那些靶场只是单个漏洞的练习。

HackTheBox - 高手进阶之路

HackTheBox(HTB)算是比较高端的平台了,上面的靶机质量都很高,而且会定期更新。不过它有个门槛,需要先通过一个入门挑战才能注册。

HTB注册和使用

  1. 访问hackthebox.eu
  2. 完成invite challenge获取邀请码
  3. 注册账号
  4. 连接VPN开始挑战

HTB分为免费和付费两种,免费用户可以访问部分退役的靶机,付费用户可以访问所有内容包括最新的靶机。

我在HTB上学到了很多高级技巧,比如Active Directory渗透、容器逃逸、内网横向移动等等。不过对新手来说可能有点难,建议先在其他靶场练好基础再来挑战。

搭建环境的一些建议

说了这么多靶场,再聊聊搭建环境的一些经验。

虚拟机隔离

不管用哪种方式搭建,我都建议在虚拟机里进行。一是为了安全,二是方便管理。我一般用VMware Workstation,稳定性比较好。

网络配置

如果是本地练习,用NAT模式就够了。如果要模拟真实网络环境,可以配置多个网段,练习内网渗透。

快照功能

虚拟机的快照功能一定要用起来,每次重大操作前都做个快照,搞坏了可以快速恢复。我就经常把靶场搞崩溃,有快照就不怕了。

工具准备

除了靶场,还要准备好渗透测试工具。Kali Linux是个不错的选择,集成了大部分常用工具。当然也可以在Windows上安装单独的工具。

学习路径建议

对于新手,我建议这样的学习路径:

  1. 从DVWA开始,熟悉基本概念
  2. 用WebGoat深入学习各种漏洞
  3. 在Pikachu上练习更多变种
  4. 尝试VulnHub的简单靶机
  5. 最后挑战HTB等高级平台

不要贪多,每个靶场都要深入研究,把每种漏洞的原理和利用方法搞清楚。我见过很多人浅尝辄止,结果学了很久还是半桶水。

另外,光练习还不够,要多看writeup,学习别人的思路和技巧。很多时候同一个漏洞有多种利用方式,多学几种总没坏处。

实战中的注意事项

虽然这些都是练习环境,但也要养成好习惯。比如做好记录,每次测试都要记录下过程和结果,这样以后遇到类似情况就有参考了。

我自己有个习惯,每次发现新的攻击手法都会记录在笔记里,包括payload、利用条件、防护方法等等。时间长了这些笔记就成了宝贵的资料库。

还有就是要理解漏洞的本质,不要只会用工具。工具只是辅助,理解原理才是根本。我见过很多人只会用sqlmap跑注入,但不知道注入的原理,这样遇到WAF或者特殊情况就懵了。

一些踩过的坑

说说我在搭建这些靶场时踩过的坑,希望大家能避免。

端口冲突问题

很多靶场默认都用80端口,如果同时运行多个就会冲突。解决办法是修改端口映射,比如把DVWA映射到8080,WebGoat映射到8081这样。

权限问题

在Linux上搭建时经常遇到权限问题,特别是文件上传功能。记得给web目录适当的写权限,但也不要设置得太宽松。

数据库连接

手动搭建时数据库连接是个常见问题。要确保MySQL服务正常运行,用户权限配置正确。我当年就因为这个问题折腾了好久。

防火墙设置

Windows的防火墙有时候会阻止访问,记得添加相应的规则。Linux上也要注意iptables的配置。

进阶学习建议

当你把基础靶场都练得差不多了,可以考虑一些进阶的内容:

代码审计

学会看源码找漏洞,这比黑盒测试更深入。可以从PHP开始,语法相对简单。

内网渗透

搭建一个小型的内网环境,练习横向移动、权限提升等技巧。

移动端安全

现在移动应用越来越多,可以学学Android应用的安全测试。

云安全

云服务的安全问题也很值得关注,AWS、Azure都有相关的练习环境。

工具推荐

除了靶场,再推荐几个常用的工具:

Burp Suite:Web应用安全测试的神器,免费版功能就够用了。

OWASP ZAP:开源的Web应用扫描器,功能很全面。

Nmap:网络扫描工具,信息收集必备。

Metasploit:渗透测试框架,集成了大量exploit。

Wireshark:网络抓包分析工具,调试网络问题很有用。

这些工具配合靶场使用,效果会更好。不过记住,工具只是辅助,关键还是要理解原理。

法律和道德问题

最后必须强调一下法律和道德问题。所有的学习和练习都必须在合法的环境中进行,绝对不能用学到的技术去攻击真实的系统。

我见过一些人学了点皮毛就去搞破坏,结果进了局子。网络安全法可不是开玩笑的,违法成本很高。

学习安全技术的目的是为了更好地保护系统,而不是去搞破坏。希望每个学习者都能够遵守法律法规,做一个有道德的安全研究人员。

社区和资源

学习过程中遇到问题是很正常的,这时候社区的作用就体现出来了。推荐几个不错的社区:

FreeBuf:国内知名的安全媒体平台,有很多技术文章。

先知社区:阿里的安全社区,质量比较高。

看雪论坛:老牌的安全技术论坛。

GitHub:很多安全工具和靶场的源码都在上面。

Reddit的r/netsec:国外的安全讨论区。

多参与社区讨论,不仅能学到知识,还能结识志同道合的朋友。我现在很多朋友都是在这些社区认识的。

持续学习的重要性

安全技术发展很快,新的攻击方式和防护技术层出不穷。要保持好奇心,多关注最新的安全资讯和技术动态。

我每天都会花时间看安全新闻,了解最新的漏洞和攻击技术。虽然不是每个都用得上,但保持敏感度很重要。

另外,参加一些安全会议也很有价值,比如KCon、GeekPwn等等。现场听大牛分享,收获会很大。

职业发展方向

如果你对安全技术很感兴趣,也可以考虑往这个方向发展。现在安全人才缺口很大,就业前景不错。

可以考虑的方向有:

  • 渗透测试工程师
  • 安全开发工程师
  • 安全运维工程师
  • 安全研究员
  • 安全咨询顾问

每个方向的要求不太一样,但基础的Web安全知识都是必需的。这些靶场就是很好的入门途径。

写在最后

Web渗透测试是一个需要大量实践的领域,这些靶场为我们提供了很好的练习环境。但记住,工具和环境只是辅助,最重要的还是要有持续学习的心态。

我自己也是从小白一步步走过来的,深知学习过程中的困难和挫折。但只要坚持下去,总会有收获的。现在回头看,当年踩过的那些坑都是宝贵的经验。

安全这个领域很有意思,每天都有新的挑战和发现。虽然有时候会很累,但那种解决问题后的成就感是其他工作很难给予的。

如果你在搭建或使用这些靶场的过程中遇到问题,可以多查查文档,或者在相关社区求助。安全圈的氛围还是很好的,大家都愿意分享和帮助新人。

最重要的是,所有的学习都要在合法的环境中进行。这些靶场就是为了让大家安全地学习,千万不要用学到的技术去攻击真实的系统。做一个有道德的安全研究人员,这是我们每个人的责任。

祝大家学习愉快,早日成为安全大神!记住,没有什么是一蹴而就的,坚持练习,你一定能达到自己的目标。路虽然长,但只要方向对了,就不怕走得慢。


如果这篇文章对你有帮助,别忘了点赞转发支持一下!想了解更多运维实战经验和技术干货,记得关注微信公众号@运维躬行录,领取学习大礼包!!!我会持续分享更多接地气的运维知识和踩坑经验。让我们一起在运维这条路上互相学习,共同进步!

公众号:运维躬行录

个人博客:躬行笔记

文章目录

博主介绍

热爱技术的云计算运维工程师,Python全栈工程师,分享开发经验与生活感悟。
欢迎关注我的微信公众号@运维躬行录,领取海量学习资料

微信二维码