零依赖学习!WebGoat全离线环境部署与实战指南
你是否曾在无网络环境下想学习Web安全却苦于无法下载工具?本文将带你实现WebGoat完全离线化部署,从环境准备到启动运行,全程无需联网即可掌握OWASP Top 10安全漏洞实战技能。读完本文你将获得:
- 3种离线部署方案的详细操作步骤
- 常见离线运行问题的解决方案
- 配套工具WebWolf的离线配置方法
- 完整的离线学习资源清单
关于WebGoat
WebGoat是OWASP(Open Web Application Security Project,开放Web应用安全项目)维护的一个故意设计存在安全漏洞的Web应用程序,旨在教授Web应用安全知识。通过实际操作这些漏洞场景,学习者可以深入理解安全漏洞的原理和利用方法。
官方文档:README.md
安全警告:运行此程序时,你的机器将极易受到攻击。使用时应断开互联网连接,WebGoat默认配置绑定到本地主机以最大程度减少暴露风险。
离线部署准备工作
环境要求
- JDK 25或更高版本
- Docker环境(可选)
- 至少2GB可用内存
- 1GB存储空间
离线资源获取
在有网络环境时,需提前下载以下资源:
- 项目源码
git clone https://gitcode.com/GitHub_Trending/we/WebGoat
- 依赖包缓存
# 进入项目目录
cd WebGoat
# 使用Maven下载所有依赖并打包
./mvnw clean package -DskipTests
Maven会将所有依赖包缓存到~/.m2/repository目录,可将此目录复制到离线环境使用。
三种离线部署方案
方案一:Docker容器化部署(推荐)
Docker方式是最简单的离线部署方案,只需在有网络时构建镜像,即可在任何支持Docker的环境中离线运行。
构建Docker镜像
# 在有网络环境下执行
cd WebGoat
./mvnw clean package -DskipTests
docker build -t webgoat/offline .
导出镜像
docker save -o webgoat-offline.tar webgoat/offline
将生成的webgoat-offline.tar文件传输到离线环境。
离线环境加载并运行
# 加载镜像
docker load -i webgoat-offline.tar
# 运行容器
docker run -it -p 127.0.0.1:8080:8080 -p 127.0.0.1:9090:9090 webgoat/offline
Docker配置文件:Dockerfile
容器暴露端口:8080(WebGoat)、9090(WebWolf)
方案二:独立JAR包运行
如果没有Docker环境,可以直接运行打包好的JAR文件。
打包可执行JAR
# 在有网络环境下执行
cd WebGoat
./mvnw clean package -DskipTests
打包完成后,在target目录下会生成类似webgoat-2023.8.jar的文件。
离线环境运行
# 设置时区(可选)
export TZ=Asia/Shanghai
# 运行JAR文件
java -Dfile.encoding=UTF-8 -jar webgoat-2023.8.jar
自定义端口(可选)
如需在非默认端口运行,可以指定端口参数:
java -jar webgoat-2023.8.jar --webgoat.port=8001 --webwolf.port=8002
启动配置:Dockerfile_desktop
方案三:源码编译运行
适合需要查看或修改源代码的高级用户。
离线环境编译
# 复制Maven依赖缓存到离线环境
cp -r ~/.m2/repository /离线环境路径/.m2/
# 设置Maven使用本地仓库
export MAVEN_OPTS="-Dmaven.repo.local=/离线环境路径/.m2/repository"
# 编译源码
cd WebGoat
./mvnw clean package -DskipTests
从源码启动
# 启动WebGoat
./mvnw spring-boot:run
源码目录:src/main/java/org/owasp/webgoat/
课程实现:src/main/java/org/owasp/webgoat/lessons/
离线访问WebGoat
启动成功后,在浏览器中访问:
- WebGoat主应用:http://localhost:8080/WebGoat
- WebWolf辅助应用:http://localhost:9090/WebWolf
常见问题解决
端口冲突问题
如果8080或9090端口已被占用,可以修改启动端口:
# 自定义端口启动
java -jar webgoat-2023.8.jar --webgoat.port=8001 --webwolf.port=8002
时区设置
Docker容器默认时区为欧洲/阿姆斯特丹,可通过环境变量修改:
docker run -it -p 127.0.0.1:8080:8080 -p 127.0.0.1:9090:9090 -e TZ=Asia/Shanghai webgoat/offline
内存不足
如遇内存不足问题,可调整JVM参数:
java -Xmx1024m -jar webgoat-2023.8.jar
离线学习资源
WebGoat提供了丰富的安全课程,涵盖各种常见的Web安全漏洞:
- 认证绕过:authbypass
- 跨站脚本(XSS):xss
- SQL注入:sqlinjection
- 跨站请求伪造(CSRF):csrf
- 不安全的反序列化:deserialization
- 服务器端请求伪造(SSRF):ssrf
课程配置:src/main/java/org/owasp/webgoat/container/LessonDataSource.java
总结
通过本文介绍的三种方案,你可以在完全没有网络连接的环境下部署和使用WebGoat进行Web安全学习。无论是使用Docker容器、独立JAR包还是源码编译方式,都能让你在离线环境中掌握Web安全测试技能。
建议初学者从Docker方案开始,逐步熟悉后再尝试源码级别的学习。每个安全漏洞模块都配有详细的说明和示例,通过实际操作这些故意设计的漏洞,能帮助你深入理解Web安全的本质。
贡献指南:CONTRIBUTING.md
常见问题:FAQ.md
GLM-5智谱 AI 正式发布 GLM-5,旨在应对复杂系统工程和长时域智能体任务。Jinja00
GLM-5-w4a8GLM-5-w4a8基于混合专家架构,专为复杂系统工程与长周期智能体任务设计。支持单/多节点部署,适配Atlas 800T A3,采用w4a8量化技术,结合vLLM推理优化,高效平衡性能与精度,助力智能应用开发Jinja00
请把这个活动推给顶尖程序员😎本次活动专为懂行的顶尖程序员量身打造,聚焦AtomGit首发开源模型的实际应用与深度测评,拒绝大众化浅层体验,邀请具备扎实技术功底、开源经验或模型测评能力的顶尖开发者,深度参与模型体验、性能测评,通过发布技术帖子、提交测评报告、上传实践项目成果等形式,挖掘模型核心价值,共建AtomGit开源模型生态,彰显顶尖程序员的技术洞察力与实践能力。00
Kimi-K2.5Kimi K2.5 是一款开源的原生多模态智能体模型,它在 Kimi-K2-Base 的基础上,通过对约 15 万亿混合视觉和文本 tokens 进行持续预训练构建而成。该模型将视觉与语言理解、高级智能体能力、即时模式与思考模式,以及对话式与智能体范式无缝融合。Python00
MiniMax-M2.5MiniMax-M2.5开源模型,经数十万复杂环境强化训练,在代码生成、工具调用、办公自动化等经济价值任务中表现卓越。SWE-Bench Verified得分80.2%,Multi-SWE-Bench达51.3%,BrowseComp获76.3%。推理速度比M2.1快37%,与Claude Opus 4.6相当,每小时仅需0.3-1美元,成本仅为同类模型1/10-1/20,为智能应用开发提供高效经济选择。【此简介由AI生成】Python00
Qwen3.5Qwen3.5 昇腾 vLLM 部署教程。Qwen3.5 是 Qwen 系列最新的旗舰多模态模型,采用 MoE(混合专家)架构,在保持强大模型能力的同时显著降低了推理成本。00- RRing-2.5-1TRing-2.5-1T:全球首个基于混合线性注意力架构的开源万亿参数思考模型。Python00
