macos - 如何将 OWASP Zap 设置为 MITM 代理来调试 HTTP Web 服务调用?

标签 macos proxy owasp zap

我想在 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 应用程序。

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

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

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

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

最佳答案

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

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

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

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

关于macos - 如何将 OWASP Zap 设置为 MITM 代理来调试 HTTP Web 服务调用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37861457/

相关文章:

objective-c - 如何打开带有 "popup"动画的NSWindow

python simple_salesforce代理使用

linux - Linux 机器上的代理数组

ruby - 我的 ruby 有问题

c - 在 c 中使用 unistd.h 在 MAC OSX 上写入串行端口的问题

asp.net - 如何在ASP.NET MVC网站中为cookie设置 'secure'标志?

asp.net - OWASP ASVS V10.4 验证是否记录了后端 TLS 连接失败 ---- 如何?

java - 如何使用 OWASP 编码器项目规范化内容

cocoa - 以编程方式更改 IB (OSX) 中建立的连接

c - 在端口 53 上的 C 中获取 DNS 查询。要绑定(bind)到的地址是什么?