如何忽略所有与 mitmproxy 的 websocket 连接?

Posted

技术标签:

【中文标题】如何忽略所有与 mitmproxy 的 websocket 连接?【英文标题】:How to ignore all websocket connections with mitmproxy? 【发布时间】:2016-02-07 10:48:35 【问题描述】:

目前,mitmproxy 似乎无法处理 websocket 连接。

我怎样才能将这些传递给客户端,以便客户端仍然可以连接到 websocket 服务器?

这是我当前的命令:

具体来说,就我而言,我目前希望客户端使用我的代理能够在 agar.io 上玩游戏,它使用 websocket 连接与(为了我们的目的,随机)托管游戏的服务器。

agar.io 连接到的游戏托管服务器示例:ws://151.80.96.51:1515ws://37.187.171.110:1523ws://37.187.163.130:1518.

我已经尝试过使用 mitmproxy 的 Ignore Domains 功能(无论是从命令行还是从程序中),以及他们推荐的 TCP Proxy 功能。这是我尝试使用的模式:

但这只会阻止 agar.io 加载(灰色背景,正确的文档标题,仅此而已)。

我认为因为客户端连接到不同的服务器(不是 ws://agar.io)我不能使用简单的域忽略,但我可能错了。


虽然目前我只对 agar.io 感兴趣,但如果有一个适用于所有 websocket 服务器的解决方案,那就太好了。

那么,简而言之,我怎样才能让客户端连接到ws服务器呢?

【问题讨论】:

好吧,您已经提到了您自己需要分析的内容(您的客户端通过 Websockets 连接到哪些域?)。这样做。 @MarcusMüller 但我不能即时忽略它们,它们可能总是在变化。感谢您的反对和富有洞察力的评论,确实解决了我的问题。 @MarcusMüller 如果您知道一种即时忽略不断变化的域的方法,请分享,它将立即成为公认的答案。 【参考方案1】:

如果您使用的是 mitmproxy 0.15+,则通过 --raw-tcp 应该可以完成这项工作。这会将所有非 HTTP 流量自动置于 TCP 模式。

【讨论】:

这不起作用。遇到和我之前一样的问题,页面加载不正确。 这确实有效。刚刚意识到灰色页面是由于我在网页中注入的东西造成的。谢谢。

以上是关于如何忽略所有与 mitmproxy 的 websocket 连接?的主要内容,如果未能解决你的问题,请参考以下文章

MITMProxy如何配置二次代理

mitmproxy + python 实现游戏协议测试

mitmproxy安装与安卓模拟器的配合使用-手机APP爬虫

mitmproxy与安卓模拟器搭配,助力Python爬虫工程师,然后就可以爬CSDN粉丝数据了

MITMProxy如何配置二次代理

mitmproxy 抓包神器-1.环境准备与抓取浏览器请求