问题标签 [mitmproxy]

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 投票
1 回答
1885 浏览

macos - 使 MITM 代理在 Mac 上运行

我需要使用 python 的 mitmproxy。我已经安装成功了。但是,当我在终端上运行 mitmproxy 命令时,它会给我一个堆栈跟踪,如下所示:

文件“/usr/local/bin/mitmproxy”,第 9 行,在 load_entry_point('mitmproxy==0.13', 'console_scripts','mitmproxy'()文件

“/Library/Python/2.7/site-packages/pkg_resources/init .py”,第 558 行,在 load_entry_pointreturn get_distribution(dist).load_entry_point(group, name) 文件“/Library/Python/2.7/site-packages/pkg_resources/init .py”,第 2682 行,在load_entry_point返回 ep.load( ) 文件“/Library/Python/2.7/site-packages/pkg_resources/init .py ”,第 2355 行,加载返回 self.resolve()文件 “/Library/Python/2.7/site-packages/pkg_resources/init .py ",第 2361 行,在解析模块 =导入(self.module_name,fromlist=[' name '], level=0)







文件“/Library/Python/2.7/site-packages/libmproxy/main.py”,第 7 行,来自 . 导入版本,cmdline

文件“/Library/Python/2.7/site-packages/libmproxy/cmdline.py”,第 5 行,从 netlib 导入 http

文件“/Library/Python/2.7/site-packages/netlib/http.py ",第 7 行,从 . import odict, utils, tcp, http_status

File "/Library/Python/2.7/site-packages/netlib/tcp.py", line 26, in 'TLSv1.2': SSL.TLSv1_2_METHOD, AttributeError: 'module' object has no属性“TLSv1_2_METHOD”

我尝试通过一些谷歌搜索来调试这个问题,看起来我需要升级我的 pyOpenSSL。

要知道我的 PyOpen SSL 的当前版本,我在 Python 提示符下执行了以下操作,得到的输出如下所示为 0.13:

所以我尝试使用以下命令升级我的 pyOpenSSL:

sudo pip install --upgrade pyOpenSSL

ans 成功地这样做了,因为当我再次运行上述内容时,我在输出的第一行收到以下内容:

要求已经是最新的:/Library/Python/2.7/site-packages 中的 pyOpenSSL

只是为了交叉验证,我去了上面的路径,发现 PyOpenSSL 目录为 PyOpenSSL-0.15.1.dist-info。所以我猜测 PyOpenSSL 实际上已升级到最新版本。

但是,当我再次在 Python 提示符下运行以下命令时,我再次收到了 0.13 版本。理想情况下,我期待它现在提供更新版本。

一些博客建议如果我安装了 virtualevn,它可能会干扰上述内容。所以我也卸载了virtualenv

sudo pip 卸载 virtualenv

我仍然无法让 mitmproxy 运行。当我运行 mitmproxy 时,我仍然得到与上面相同的错误。

请让我知道我缺少什么以及如何让 mitmproxy 运行。

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 投票
1 回答
1240 浏览

python - Mitmproxy:篡改获取请求:用脚本替换请求中字符串“数据:123”的所有实例

我正在使用 mitmproxy,但我对它还是很陌生(已经使用了几天)。现在我正在尝试拦截获取请求,并将字符串的所有实例替换为“数据:456”,例如“数据:123”,然后恢复信息流,意图从应用程序中获取某个响应. 我已经成功拦截了我想要的 URL,但我不明白如何创建一个脚本来替换“数据:123”的所有实例,或者在拦截时是否可以这样做。任何帮助表示赞赏!获取请求看起来像这样。替换所有实例的原因是因为数据似乎重复(不必要?)多次,手动替换每个实例是不可行的。

请注意,我截获的实际数据更大,并且格式不是很好,因此需要一个脚本。我查看了https://github.com/mitmproxy/mitmproxy上的示例,但似乎对我正在尝试做的事情没有任何帮助。

非常感谢为我的问题找到解决方案的任何帮助和指导!!!

0 投票
1 回答
632 浏览

python - 在 MITM 代理内联脚本中捕获 SSL 验证错误

我正在使用MITM Proxy使用 Python Inline Scripts来捕获请求/响应。在证书验证错误的情况下,MITM 代理将日志行写入标准输出,例如

是否可以在内联脚本功能中捕获此证书验证错误以及如何捕获?我只能在此脚本中捕获 http 请求和响应。如果内联脚本不可能,也许我可以用libmproxy做到这一点?

0 投票
1 回答
11787 浏览

curl - Converting a SOAP UI SOAP request to curl - curl via mitmproxy works

Well, basically that's my question. I honestly don't know what using mitmproxy results in a successful request.

Here's what I did:

  • Created a request from WSDL and was able to query the server successfully
  • Recreated that request using curl. I tried my best to create the same request as soapui does and by inspecting the request using ngrok and requestb.in but it still failed.
  • I tried mitmproxy because why not and I am running out of ideas and it worked!

I really don't know what's going on. Why using mitmproxy made it work.

0 投票
1 回答
353 浏览

raspberry-pi - RaspberryPi 作为接入点,带有 2 个运行 MITMProxy 和 ParosProxy 的 Wifi usb

我试图研究我手机中的应用程序发送的 HTTP(s) 请求/响应,所以这就是我继续创建的内容。

我将 Raspberry Pi 变成了带有 2 个 wifi usb 加密狗的接入点。一个让我的手机连接到“TEST”网络,第二个连接到互联网。一切正常,我的手机可以通过我的 RPi 访问互联网。

现在我设置了 MITMproxy(在透明模式下),这样我就可以从我的手机应用程序中嗅出流量。我在手机上安装了 mitmproxy 证书,并且流量在 mitmproxy 控制台上显示良好。

最后一步 - 为了使网络流量数据分析部分更容易,我在网上发现 Paros Proxy 可能能够以更易读的方式提供帮助(显示来自 mitmproxy 的流量)。- 这没有发生

我假设 ParosProxy 需要一些设置,以便它可以链接到我无法实现的 mimtProxy / 网络接口。有人可以帮忙吗?

ParosProxy 仪表板不显示任何流量。至于设置(工具->选项),默认设置在那里,即本地代理(主机=本地主机和端口=8080)。我在网上找不到太多关于 ParosProxy 的文档。我在 RPi 上的网络接口如下:wlan0(连接到互联网)-DHCP wlan1(电话应用程序连接到的接入点)-静态 IP(网关 192.168.10.1)

以防万一有其他工具可以帮助我实现相同的目标(用于实时分析 mitmproxy 流量的 GUI/更好的仪表板),我对此非常开放。

0 投票
1 回答
3563 浏览

pip - centos7上安装mitmproxy

我在 centos7 x64 上安装 mitmproxy 时遇到问题。我已经在我的操作系统上安装:

  • 软件包 libxslt-devel-1.1.28-5.el7.x86_64 已安装且最新版本
  • 软件包 libxml2-devel-2.9.1-5.el7_1.2.x86_64 已安装且最新版本
  • 软件包 libxml2-devel-2.9.1-5.el7_1.2.x86_64 已安装且最新版本
  • 软件包 libxslt-devel-1.1.28-5.el7.x86_64 已安装且最新版本
  • [root@localhost ~]# python -V > Python 2.7.3
  • 软件包 libffi-devel-3.0.13-11.el7.x86_64 已安装且最新版本
  • 包 python-urllib3-1.10.2-2.el7_1.noarch 已安装且最新版本
  • 包 python-pillow-2.0.0-17.gitd1c6db8.el7.x86_64 已经安装和最新版本

错误是:

0 投票
1 回答
525 浏览

mitmproxy - mitmproxy 记录到 outfile utf8 编码错误

我正在使用 mitmproxy 并想记录每个请求并响应文件,所以我使用“-w”选项,如下所示:

但是当我打开 'aaa.txt' 时,它显示不可读的内容,如下所示:

我也尝试了脚本:https ://github.com/mitmproxy/mitmproxy/blob/master/examples/flowwriter.py 它仍然不起作用,所以有一些编码错误吗?

0 投票
3 回答
10624 浏览

mitmproxy - 使用 mitmproxy 返回自定义响应

使用带有以下代码的 mitmproxy 时,我正在尝试返回自定义响应

但是结果并不像预期的那样,在浏览器中它显示为 http 状态代码,标题 och 正文为明文

如何将其作为实际的“http”响应返回,以便 chrome 将其呈现为 html?

0 投票
0 回答
149 浏览

python - Windows 8 pip 安装 mitmproxy 错误

我正在尝试在 Windows 8 上安装 mitmproxy

我已经安装了 Python 2.7.9 版和 pip 7.1.2 版

但我不断收到此错误: