美好的一天,Web 开发人员! 今天,我们将讨论一个超级有用的应用程序,它可以教你 Web 应用程序安全课程。 打招呼 网络山羊一个故意的 不安全的网络应用程序 由开发 OWASP,旨在教授如何通过动手练习实时修复常见的 Web 应用程序缺陷。 对于想要了解应用程序安全性和渗透测试技术的人来说,此应用程序非常有用。
提醒一句: WebGoat 是 纯粹用于教育目的. 它使您的系统极易受到攻击者的攻击。 所以,我坚持你在局域网的虚拟机中使用它。 不要将您的测试机连接到 Internet。 你被警告了!
如何部署 WebGoat
WebGoat 可以使用 Docker 或作为独立应用程序进行部署。 因为,它纯粹是为了学习和教育目的,所以我更喜欢在 Docker 中使用它。
使用 Docker 安装 Webgoat
如果您尚未安装 Docker,请参考以下链接安装 Docker。
- 如何在 CentOS 中安装 Docker
- 如何在 Ubuntu 中安装 Docker
安装 Docker 后,运行以下命令部署 WebGoat。
$ docker run -it -p 127.0.0.1:80:8888 -p 127.0.0.1:8080:8080 -p 127.0.0.1:9090:9090 -e TZ=Asia/Kolkata webgoat/goatandwolf:v8.2.2
在上述命令中将时区替换为您自己的时区。
此命令将在几分钟内拉取最新的 WebGoat docker 映像并启动 WebGoat 和 webwolf 实例。 启动后,您将看到如下所示的输出。
[...] 2017-12-05 11:22:50,132 INFO - FrameworkServlet 'mvc-dispatcher': initialization completed in 533 ms 2017-12-05 11:22:50,171 INFO - Initializing main webgoat servlet 2017-12-05 11:22:50,173 INFO - Browse to https://localhost:8080/WebGoat and happy hacking! Dec 05, 2017 11:22:50 AM org.apache.coyote.http11.Http11Protocol start INFO: Starting ProtocolHandler ["http-bio-8080"]
docker 镜像启动后,您可以通过以下 URL 访问登录页面、WebGolf 和 WebWolf 界面。
- 登陆页面——
https://localhost
- WebGoat 仪表板 –
https://localhost:8080/WebGoat
- WebWolf 界面 –
https://localhost:9090/WebWolf
将 Webgoat 安装为独立应用程序
确保您已安装 爪哇. 然后,从 发布页面.
最后,启动 WebGoat,如下所示。
$ java -Dfile.encoding=UTF-8 -jar webgoat-server-8.2.2.jar [--server.port=8080] [--server.address=localhost] [--hsqldb.port=9001] $ java -Dfile.encoding=UTF-8 -jar webwolf-8.2.2.jar [--server.port=9090] [--server.address=localhost] [--hsqldb.port=9001]
现在是修复漏洞的时候了。 正如我之前提到的,在开始使用之前断开互联网。
如何使用 WebGoat 实时修复 Web 应用程序缺陷
打开您的网络浏览器并导航到 https://localhost:8080/WebGoat 或者 https://IP-address:8080/WebGoat. 您将看到以下屏幕。
登录: 网山羊/网山羊. 这是管理登录。 您也可以使用普通用户帐户: 客人/客人.
现在,您将进入 WebGoat 的概述部分,您可以在其中提供有关如何使用 WebGoat 修复 Web 应用程序的常见缺陷和漏洞的各种说明。
如您所见,左侧窗格中有许多课程类别。 单击一个类别以查看包含的课程。
为了 example,让我选择 注入缺陷 -> 命令注入 课程计划。

如您所见,所选课程有 5 个选项卡。
- 显示来源 – 这将显示底层 Java 源代码。
- 显示解决方案 – 这将显示所选课程的完整解决方案。
- 展示计划 – 这将显示课程的目标和目的。
- 显示提示 – 这将显示解决课程的技术提示。
- 重新开始课程 – 如果您想重新开始课程,您可以使用此链接。
单击每节课并尝试解决该课,如有必要,请使用提示。 如果您无法使用提示解决课程,请查看解决方案以获取完整详细信息。
资源: