问题标签 [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 投票
2 回答
2499 浏览

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

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

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

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

0 投票
1 回答
3646 浏览

android - 如何修复 mitmproxy 不显示应用流量

我已经在 Ubuntu 上设置了 mitmproxy,并将我的 android 设备链接到它。我可以查看来自 android 浏览器的流量,但是当我启动一个应用程序时,它不会显示来自该应用程序的任何流量(看起来是任何应用程序),即使该应用程序正在连接到互联网。我究竟做错了什么?

我正在运行的 mitmproxy 命令是~mitmproxy --host

0 投票
2 回答
1447 浏览

lan - 如何在ubuntu上配置2个网卡

我想在 1 台 pc 上配置 2 个 lan 卡,这样看起来两者都连接在不同的网络上。另外我希望一个局域网卡的网关是另一个局域网卡的IP地址,以便一个流量通过第二个。我在我的电脑上应用 mitmproxy 来监控我自己的流量。

我是 ubuntu 和网络新手。所以如果我说的有问题,请纠正我。

ifconfig -a

eth0
Link encap:Ethernet HWaddr 00:1c:c0:0d:85:38
inet addr:10.0.0.55 Bcast:10.0.0.255 Mask:255.255.255.0 inet6 addr: fe80::21c:c0ff:fe0d:8538/64 范围: Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX 数据包:8094 错误:0 丢弃:0 超限:0 帧:0 TX 数据包:7628 错误:0 丢弃:0 超限:0 运营商:0 冲突:0 txqueuelen:1000 RX字节:6890690 (6.8 MB) 发送字节:1094128 (1.0 MB)

eth1
Link encap:Ethernet HWaddr 10:fe:ed:01:ce:34
inet addr:10.0.0.95 Bcast:10.0.0.255 Mask:255.255.255.0 inet6 addr:fe80::12fe:edff:fe01:ce34/64 范围:连接广播运行多播 MTU:1500 度量:1 RX 数据包:2338 错误:0 丢弃:0 超限:0 帧:0 TX 数据包:2322 错误:0 丢弃:0 超限:0 运营商:0 冲突:0 txqueuelen:1000 RX字节:1303961 (1.3 MB) 发送字节:256352 (256.3 KB)

lo
Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Scope:Host UP LOOPBACK RUNNING MTU:65536 Metric:1 RX packet:3849 errors:0 drop:0 overruns:0帧:0 TX 数据包:3849 错误:0 丢弃:0 超限:0 载波:0 冲突:0 txqueuelen:0 RX 字节:1008514(1.0 MB) TX 字节:1008514(1.0 MB)

谢谢

0 投票
0 回答
2228 浏览

python - mitmproxy 替换整个 HTML 标签

嗯....看起来这是我在stackoverflow上的第一篇文章。在这个小项目上工作完全被困住和浪费时间,我准备放弃了。希望有人可以帮助我。

我一直在使用 mitmproxy。我正在编写一个 python 脚本,以在用户加载页面时用自定义内容替换 http 响应中的 body 标记。

我认为问题在于:

我已经使用在线正则表达式测试器测试了正则表达式。我认为我的问题是 HTML 是多行的。我需要以某种方式设置 re.DOTALL 标志,但我不确定开发人员编写的 msg.replace 方法是否可行。

这是替换方法文档的链接。

有谁知道如何做到这一点?我很绝望。:'(

0 投票
1 回答
2282 浏览

python - MITMProxy:智能 URL 替换

我们使用一个自定义的抓取工具,它必须为一种语言使用一个单独的网站(这是一个架构限制)。像 site1.co.uk、site1.es、site1.de 等。

但是我们需要解析一个有多种语言的网站,用 url 分隔——比如 site2.com/en、site2.com/de、site2.com/es 等等。

我想到了 MITMProxy:我可以通过这种方式重定向所有请求:

我写了一个小脚本,它只需要 URL 并重写它们:

但是目标主机使用来自网络服务器的响应生成 301 重定向 - “页面已移至此处”以及指向 site2.com/en 的链接

当我玩 URL 重写时,它起作用了,即 site2.com/en --> site2.com/de。但是对于不同的主机(准确地说是子域和根域),它不起作用。

我尝试从上面替换 handle_request 方法中的 Host 标头:

我也尝试替换推荐人 - 所有这些都没有帮助。

我怎样才能最终将该请求从子域欺骗到主域?如果它生成一个 HTTP(s) 客户端警告,那没关系,因为我们需要它用于爬虫(并且可以关闭那里的警告),而不是真正的浏览器。

谢谢!

0 投票
2 回答
2998 浏览

reverse-engineering - 对 Xbox One Smartglass 应用的 API 授权标头进行逆向工程

由于微软出于某种愚蠢的原因决定将 Xbox Live 用户的个人资料页面放在登录墙后面,我不得不寻找其他方法来确定 Xbox Live 用户是否在线。

为此,我使用了 mitmproxy 来找出适用于 iOS 的 Xbox One Smartglass 应用程序发出的请求。似乎对于任何需要身份验证的请求,应用程序都会使用“XBL3.0 x={computed auth token}”填充“身份验证”标头字段。

我发现该应用程序通过向https://login.live.com/oauth20_token.srf发出 POST 请求来获取访问令牌,并传入表单编码数据,其中一个属性是用户的“refresh_token”。您可以通过简单地使用 mitmproxy 查看任何这些请求来获取此刷新令牌。

然后,该应用程序继续向https://user.auth.xboxlive.com/user/authenticate发出 POST 请求,传入我无法确定其来源的各种信息。以下是此请求的示例 JSON 有效负载:

此请求的响应包含以下 JSON:

连接在一起的“uhs”和“token”的内容似乎是“XBL3.0 x=”授权标头中缺少的身份验证令牌。

问题是我对微软的网络堆栈完全不熟悉,经过数小时的搜索,我无法弄清楚“RpsHeader”和“RpsTicket”的值来自哪里。

0 投票
1 回答
139 浏览

ssl - 使用 CA 证书的替代方法

除了安装 CA SSL 证书来拦截一个站点的流量之外,还有其他方法吗?

我不喜欢能够修改任何请求的想法,并且希望从技术上将其限制在一个域中,这是否可能,或者如果使用 MITM,您是否需要信任 MITM 的一切?

示例:出于开发原因,您正在拦截对测试站点 example.com 的所有调用,因此为了进行测试,您需要在测试人员的设备上安装 CA 证书。现在您可以拦截所有域。测试人员不喜欢这样,因为它侵犯了他们的隐私。

有没有办法使用安装在仅适用于 example.com 的设备上的证书而不修改站点提供的证书,或将 example.com 的实际证书移交给 mitmproxy?

0 投票
0 回答
1549 浏览

macos - 如何使用 MITMPROXY 复制 Charles 的 Map Remote 功能

我正在尝试在 OS X 10.9 上使用 MITMPROXY复制Charles 中的 Map Remote功能提供的功能。我想要做的是用对desiredurl.ca 的请求替换对desiredurl.com 的任何请求(我愿意接受任何告诉我如何使用免费软件在Charles 中复制给定功能的答案)。

我找到了这个答案这个问题,它们看起来都应该有所帮助,我编写了下面的脚本。

mitmdump -s path/to/script.py在我的 iMac 上,然后像往常一样在端口 8080 上将我的 iPad 连接到我的 iMac,并在终端窗口中看到流量,但访问desiredurl.com 仍然会将我带到desiredurl.com 而不是desiredurl.ca。因此,我尝试了以下方法:

但是,请求仍然发送到desiredurl.com 而不是desiredurl.ca。为什么是这样?

0 投票
1 回答
1119 浏览

python - Debian mitmproxy 无法找到/加载通过 pip 安装的 python-2.7 模块

我正在运行 Debian wheezy 并从系统包安装了 mitmproxy,并使用 pip 安装了 pushbullet.py ( https://github.com/randomchars/pushbullet.py ),即。

当我从 python cmdline 导入时,Pushbullet 有效,如下所示:

但是,当我尝试从 mitmproxy 脚本中导入 pushbullet 模块时,它无法找到该模块。

现在,pip 已将 pushbullet.py 及其依赖项 python-magic、requests、backports.ssl-match-hostname 安装到 /usr/local/lib/python2.7/dist-packages/ 中。似乎 cmdline python 已经找到了 pip 安装的包,但 mitmproxy 由于某种原因无法找到。

因此,我尝试通过 PYTHONPATH 或通过系统路径添加路径,但我认为我仍然做错了什么。

任何人都可以阐明为什么一切都可以通过 cmdline python 运行,并且在从 mitmproxy 中作为脚本加载时失败,以及如何解决它?通过 pip 安装的模块应该如何加载?

0 投票
1 回答
1187 浏览

proxy - mitmproxy 安装错误

我尝试使用 python 2.6.6 在 centos 6.4 上安装 mitmproxy,执行安装命令时出现以下错误。

#pip 安装 mitmproxy