3

我想在 OS X 上捕获 HTTP 请求和响应。请求从 Ruby-on-Rails 服务器发送到 Elasticsearch 服务器,因此我无法使用 Chrome 或其他浏览器提供的内置日志记录。

在我的 elasticsearch.yaml 中,我已将 Elasticsearch 更改为使用端口 9400。使用 Web 浏览器,我验证它现在支持对该端口的请求,而不是 9200。

在 ZAP 中,我已将选项 > 本地代理 > 端口设置为 9200。

我希望我的 Rails 应用程序继续向端口 9200 发送消息,让它们被 ZAP 拦截并在端口 9400 上转发到 Elasticsearch,让 Elasticsearch 将响应发送回 ZAP,然后让 ZAP 将其转发到 Rails 应用程序。

我没有看到我期望发生的事情。尝试使用 Web 浏览器(代替 rails 应用程序)从端口 9200 请求返回“错误格式”。

我需要对 ZAP 进行哪些额外配置,以及如何让它启动?我如何告诉它将请求转发到端口 9400?

更新:我认为我要求的是“反向代理”。

更新:在 OWASP 的 google 组中,我了解到 ZAP 不用作反向代理。我最终选择了 mitmproxy,它易于安装和使用,功能较少,因此更易于理解。

4

1 回答 1

0

在标题下,我不会(仅)了解如何使用代理(特定)重定向端口,而是如何将 ZAP 设置为 MITM 代理(一般)。因此,对道德黑客的一般补充:

ZAP 是一个代理。例如,只要在浏览器设置中将 ZAP 设置为代理,它就可以读取(如果未加密)网络服务器和浏览器之间的通信。我测试了 firefox 和 ZAP V 2.9.0。

要使用 OWASP ZAP 操作 HTTP 流量,我发现了以下可能性:首先在工具菜单选项卡中,需要设置“所有请求上的Toogle Break”和“所有响应上的Toogle Break”(绿色红绿灯在工具栏将变为红色)。之后,每个请求和响应都会在它被发送到名为“Break”的工作区窗口的选项卡中之前。在这里,在使用“提交并进入下一个请求或响应”菜单项发送它们之前很容易操作它们。使用“提交并继续到下一个断点”可以关闭中断,直到下一个断点。也可以在这里操作端口。

但对于您的具体情况:如果通信将在浏览器(将 OWASP ZAP 设置为端口 9200 下的代理)和网络服务器之间进行,则浏览器中请求的端口需要是端口 9400。针对 firefox 进行测试,浏览器是否会处理它在后台,首先使用端口 9200 将流量发送到 ZAP。但从您的问题看来,您的 Ruby-on-Rails 服务器要求代理动态重定向端口。

于 2020-09-29T11:20:46.647 回答