【WebGoat通关思路】General / HTTP Proxies(webgoat教程)

网友投稿 578 2022-10-02


【WebGoat通关思路】General / HTTP Proxies(webgoat教程)

康创护网研习社是广州康创信息科技有限公司旗下的社群,专注于护网行动的安全服务公司,不定期发布人员需求,与主流网络安全厂商建立了合作关系。旨在为每年的大型网络安全保护行动(护网、重保等业务)提供高质量可靠的安全人员。为社群优秀的小伙伴提供学习实践机会和丰厚报酬以及大厂实践经历。

HTTP Proxies / Lesson 1

什么是HTTP代理

代理是HTTP客户端和服务器之间的转发程序。HTTP客户端可以是浏览器,或像curl、SOAP UI、Postman等应用程序。通常情况下,当客户端没有直接连接到互联网时,这些代理被用于路由使你可以访问互联网。因此,当你测试你的应用程序时,你可以随时使用代理的日志记录来查看从客户端到服务器实际发送的内容。因此,你可以检查请求和响应头以及XML、JSON或其他Playload。

HTTP代理接收来自客户端的请求并转发它们。它们通常还记录这些请求。他们充当中间人的角色。只要你的客户或浏览器信任HTTP代理的证书,无论有没有HTTPS,它甚至都能正常工作。

ZAP代理的功能

通过ZAP,你可以记录流量,检查流量,修改来自你的浏览器请求和响应,并获得关于一系列已知漏洞问题,这些漏洞是ZAP通过检查流量发现的。这里我们将交互式地使用ZAP,主要是查看和修改请求,以便发现漏洞和解决任务。ZAP有一个图形用户界面,但现在也有一个HUD Heads-On-Display,它在浏览器和ZAP代理之间使用一个websocket连接。

HTTP Proxies / Lesson 2

HTTP代理设置

由于这是一个OWASP项目,我们将使用OWASP ZAP。如果你可以使用另一个代理(例如Burp Suite),你可以跳过这个。否则,这将告诉你如何设置ZAP作为你本地主机的代理。

设置ZAP 2.8.0

首先为你的操作系统下载并安装ZAP 2.8.0 启动ZAP 配置代理使用一个自由端口,例如8090 直接从ZAP启动浏览器

HTTP Proxies / Lesson 3

设置ZAP 2.8.0

首先为你的操作系统下载并安装ZAP 2.8.0 启动ZAP 配置代理使用一个自由端口,例如8090

启动 ZAP

配置代理端口

Select Tools > Options from the menu Select Local Proxy on the left Choose an available port … Since WebGoat is (or will be) using port 8080, use something different like 8090 Click OK

在选项菜单中,你也可以改变语言。默认情况下,它是以你的操作系统的语言设置来设定的。例子中显示的是 English。

HTTP Proxies / Lesson 4

设置浏览器

在浏览器中输入:ZAP头像显示(如果你使用OWASP ZAP作为代理):

你应该在OWASP ZAP的历史面板上看到以下内容:

在下一节,我们将展示如何过滤这些请求,只看到相关的请求,以及如何配置拦截器。

HTTP Proxies / Lesson 5

在历史面板中过滤请求

然后在 URL Inc Regex 框中输入:

.*WebGoat.*

并在 URL Exc Regex 框中输入:

.*lesson.*.mvc

HTTP Proxies / Lesson 6

配置一个断点过滤器

在我们开始使用ZAP拦截请求之前,我们需要排除WebGoat框架的内部请求,否则ZAP也会停止所有的请求,这些请求只是WebGoat内部工作所必需的。基本上配置了一个断点,当请求头包含一个POST时,它将拦截请求。这些都是最有趣的。你可以添加其他规则,只要轮询的.mvc信息被排除在外。因为这将是很烦人的。

设置断点的方法如下:

一旦你拦截了请求,并且发出了一个请求,它应该看起来像这样:

拦截和修改一个请求

将方法改为GET 添加一个头'x-request-intercepted:true'。 删除请求正文,将'changeMe'作为查询字符串参数发送,并将其值设置为'Requests are tampered easily'(不含单引号)。

通关思路

根据上方的修改要求,我们使用Burp Suite拦截请求并修改然后提交。

然后根据要求修改请求,改动如下图所示

HTTP Proxies / Lesson 7

使用ZAP中的 "Edit and resend"功能

让我们看一个例子,我们将使用WebWolf介绍课上的电子邮件例子。本课将产生一个 /WebGoat/WebWolf/mail 的请求,在"History"窗口中选择你想重新发送的URL,右击该URL并选择用 Open/Resend with Request Editor。你也可以在ZAP的左窗格中找到该请求,如下图中的红色箭头所示:

一个新的窗口将被打开,在这里你可以修改请求,例如把电子邮件地址改成别人的,然后再次发送。在响应标签中,你可以检查请求的响应。在一些作业中,响应会显示一个已解决的信息,但有时你会得到一个 code/flag,你需要在WebGoat中提交,以完成作业。要时刻注意响应的情况。如果你通过这种方式提出请求解决了作业,WebGoat会自动将该课程标记为已解决。

HTTP Proxies / Lesson 8

从 ZAP 到 的代理

OWASP ZAP代理也可以被配置为代理Zap中的ZAP的连接。

如果你想代理到一个相互TLS Certificate 。如果你想设置超时,并想强制使用TLSv1.2,去Tools/Options/Connection设置。

导出证书

根据本地安装的工具,ZAP可以直接启动浏览器,有一些调整后的选项,如网络设置和证书调整。然而,如果你想独立于ZAP启动你的浏览器,应该完成这一步。为了能够使用浏览器,浏览器需要证书,可以在这里导出。

导入OWASP ZAP根证书

HTTP Proxies / Lesson 9

手动设置代理

这一部分只有在你想使用Burp或者通过ZAP运行浏览器不工作的情况下才有必要,在这两种情况下我们需要做一些额外的配置。在最新版本的Chrome和Firefox中,默认情况下不再代理来自localhost的流量。

选项1:改变你的浏览器的设置

要代理本地主机(和相关地址)与较新的Firefox版本(>=67)的首选项network.proxy.allow_hijacking_localhost(通过about:config页面访问)必须设置为true。 要在较新的Chrome版本(>=72)上代理localhost(和相关地址),必须提供命令行参数--proxy-bypass-list=←loopback>。

选项2:使用webgoat.local

使用你的机器的主机名而不是localhost,你可以在Linux和MacOSX上的/etc/hosts中找到或添加一个主机名,在Windows上的C:\Windows\System32\drivers\etc中找到或添加一个。

然后在你的浏览器中使用作为地址。

配置浏览器以使用代理

要在浏览器中手动配置代理,请按照以下配置之一进行。

Firefox 代理配置

Chrome浏览器的代理配置

(以上是Mac的配置图片)

(以上是Win的配置图片)

HTTP Proxies / Lesson 10

Burp Suite

另一个被经常使用的代理是Burp Suite。WebGoat中的一个练习只能用Burp Suite解决,还不能用OWAP ZAP。Burp Suite只能手动配置,请先按照这里的步骤进行配置。Burp Suite社区版可以作为一个普通的jar文件下载 Burp下载

java -jar burpsuite_community_v2.1.04.jar

忽略关于使用JDK11的警告。选择临时项目,然后选择使用burp的默认值。

进入代理选项,将其改为使用8090端口

在这一页,你也可以导出Burp Suite证书并将其导入你的浏览器。与前几页的说明类似。

启动连接到代理的浏览器并开始使用WebGoat。现在通过扩展不拦截内容的规则来调整拦截请求的设置。

截获的信息将看起来像:

最后,你可以在这个屏幕上查看历史,并为历史和重放请求添加过滤器:

加入社群


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Java DatabaseMetaData用法案例详解
下一篇:【WebGoat通关思路】General / HTTP Basics(webgoat教程)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~