WebGoat 教你实时修复 Web 应用程序缺陷

美好的一天,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 的概述部分,您可以在其中提供有关如何使用 WebGoat 修复 Web 应用程序的常见缺陷和漏洞的各种说明。

如何使用 WebGoat

如您所见,左侧窗格中有许多课程类别。 单击一个类别以查看包含的课程。

为了 example,让我选择 注入缺陷 -> 命令注入 课程计划。

命令注入部分命令注入部分

如您所见,所选课程有 5 个选项卡。

  1. 显示来源 – 这将显示底层 Java 源代码。
  2. 显示解决方案 – 这将显示所选课程的完整解决方案。
  3. 展示计划 – 这将显示课程的目标和目的。
  4. 显示提示 – 这将显示解决课程的技术提示。
  5. 重新开始课程 – 如果您想重新开始课程,您可以使用此链接。

单击每节课并尝试解决该课,如有必要,请使用提示。 如果您无法使用提示解决课程,请查看解决方案以获取完整详细信息。

资源: