问题标签 [libmproxy]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
21912 浏览

ssl - 如何避免 libmproxy 中的“tlsv1 alert unknown ca”错误?

当前使用libmproxy,后者又使用telnetlib向 HTTPS 网页发出请求。但是,会引发以下错误:

我认为这与无法验证为页面使用的证书提供担保的 CA 的身份有关。我认为应该有一个可以打开(或关闭)的设置来绕过验证 - 我对验证数字签名者的身份不感兴趣。

我认为一种可能的、丑陋的解决方案可能是修补代码以捕获异常并忽略它,但我宁愿有一种更清洁、更受支持的方法来做到这一点。

什么是避免/解决这个问题的好方法?

非常感谢!

0 投票
1 回答
1670 浏览

ssl - 如何使用 libmproxy 处理 https 流量?

我想实现一个拦截 http 和 https 请求的代理服务器。我遇到了支持 SSL 的 libmproxy ( http://mitmproxy.org/doc/scripting/libmproxy.html )。我从这个最简单的代理开始,它只打印所有请求和响应的标头,并将它们正常转发到客户端和服务器。

然后我在 Firefox 中将 http 和 ssl 代理配置为 127.0.0.1 端口 1234。http 似乎工作正常,因为我可以看到所有标题都打印出来了。但是,当浏览器发送https请求时,代理服务器根本不打印任何东西,浏览器显示“连接被中断”错误。

进一步调查显示,https 请求通过代理服务器而不是 controller.Master。我看到当有 https 请求时正在调用 proxy.ProxyHandler.establish_ssl(),但该请求没有通过 controller.Master.handle_request()。尽管调用了establish_ssl(),但浏览器似乎没有得到任何响应。我用https://www.google.com对此进行了测试。

首先,如何使 proxy.ProxyHandler 与 https 请求/响应一起正常工作?二、如何修改controller.Master,使其能够拦截https请求?我也对可以在其上构建自定义 http/https 代理服务器的其他工具持开放态度。

0 投票
4 回答
8580 浏览

python - 如何将 mitmproxy 连接到我无法控制的另一个代理?

该过程是浏览器向 MITMproxy 发送请求,然后生成一个请求,该请求被发送到不受我们控制的目标代理服务器。代理服务器将向 MITMproxy 发送响应,然后将响应中继到浏览器。

我该怎么做呢?

0 投票
2 回答
2499 浏览

python - Mitmproxy 使用 python 加载和卸载脚本

我正在按照 Mitmproxy github示例中的建议运行代理:

我想在不阻塞其他请求/响应的情况下处理每个请求/响应,因为我需要使用并发装饰器和脚本

我的问题是:如何将脚本加载和卸载到在此配置中运行的代理?

0 投票
1 回答
758 浏览

mitmproxy - 具有多个上游的反向代理

我已经设置了一个虚拟机来将端口 80 连接重定向到一些服务器到我的 mitmproxy 实例。

现在我希望设置 mitmproxy(或 libmproxy)来修改请求并将请求转发到我选择的服务器,具体取决于 HTTPHost标头(以及修改响应)。我该如何做到这一点?透明代理似乎从较低的网络层读取了预期的目标服务器,而我没有(虚拟机直接连接到我的代理)。

0 投票
1 回答
964 浏览

android - libmproxy 和 mitmproxy 文档

我是 mitmproxy 世界的新手。我需要编写一个 python 脚本来记录 Genymotion 模拟器上某个应用程序发出的所有请求。现在,我了解到 mitmproxy 可以帮助满足我的要求。所以我已经成功设置了 mitmproxy,现在我可以通过 mitm 客户端监控来自 Gennymotion 上任何应用程序的所有 HTTP/S 流量。

但是,我想要的是:

该应用程序将由用户手动探索,并且应该运行此 Python 脚本,该脚本将简单地记录用户探索该应用程序时发出的所有请求。

我曾尝试浏览 mitmproxy API 的 Github 示例,但无法理解它们。有人可以为我指出这些 API 的更详细的解释/使用指南吗?

通过更多的挖掘,我发现我需要类似于https://github.com/mitmproxy/mitmproxy/blob/master/examples/flowbasic但我不明白上述资源中的脚本内部发生了什么。喜欢

什么是 f.reply() ?
什么是 flow.State() ?
什么是 m.run() ?
什么是 flow.FlowMaster ?

更重要的是,有没有什么地方可以让我了解上述各种方法和其他方法?

同样,也发现了这一点:从 MITM 代理获取“原始”请求\响应

有人可以解释如何或从哪里调用 request() 吗?
那里的上下文和流参数是什么?

0 投票
2 回答
751 浏览

python-2.7 - libmproxy 问题 - “模块”对象没有属性“TLSv1_1_METHOD”

我尝试在我的 linux RHEL 7 中使用 Libmproxy,但出现以下异常:

已经尝试重新安装 mitmproxy、netlib、PyOpenSSL 和 Cryptography。还有其他想法吗?

0 投票
1 回答
240 浏览

python-2.7 - libmproxy - 如何异步加载请求?

我想知道如何使用 libmproxy 或 mitmproxy 异步加载请求。

我的代码如下所示: