如何使用 mitmproxy 回复本地主机上的表单提交?

如何使用 mitmproxy 回复本地主机上的表单提交?

我正在本地主机上开发一个 Web 应用程序。它需要一些手动测试,包括表单提交。一切都通过纯 HTTP 而不是 HTTPS 完成。

我想使用mitmproxymitmdump记录并重播我的表单提交。我不想代理所有网络流量,只想代理请求,比如说localhost:3000

理想情况下,我会在 上启动代理localhost:8080localhost:8080使用浏览器发出请求,并让其将该请求转发给localhost:3000。但另一个工作流程也可以。

如何使用mitmproxy或记录并重播到本地主机的表单提交mitmdump

答案1

Mitmproxy 4 在预期用途方面走了一条不同的道路。以前,我只是用它来启动一个日志反向代理,但最近,开发方向是将 mitmproxy 安装为系统代理,然后监听来自系统的流量(包括 https 流量),然后根据你的需要过滤流量。

虽然我无法代理或在代理模式下看到本地主机流量,但幸运的是,反向代理模式仍然有效(即使文档很难找到/理解):

mitmproxy --mode reverse:http://localhost:3000/ -p 8080  --set keep_host_header=true

它以反向模式监听,并http://localhost:3000在您的浏览器访问时作为上游进行联系http://localhost:8080/。使用域时,发送主机标头也很重要(通常当我听到这个问题时,这是下一个问题)。

现在,您要做的就是点击,http://localhost:8080然后您就会看到流量。

如果您替换mitmproxymitmweb那么将使用 webui 而不是终端 ui。

答案2

理想情况下,我会在 localhost:8080 上启动代理,用浏览器请求 localhost:8080,然后让它将该请求转发到 localhost:3000

您可以通过在反向代理模式下运行 mitmproxy 来实现此目的:http://mitmproxy.org/doc/modes.html

您可以通过-w outfile在 mitmproxy UI(键盘快捷键)中指定或手动保存流来记录 HTTP 请求w

r您可以通过按下或自动重播上一步中保存的对话来 在 mitmproxy UI 中重播请求:http://mitmproxy.org/doc/features/clientreplay.html

相关内容