mitmproxy & python - 忽略所有带有 https/ssl 的主机

mitmproxy & python - ignore all hosts with https/ssl

我做了很多研究,但找不到任何能真正解决我的问题的东西。

因为基本上没有站点接受 https 的 mitmdumps 证书,所以我想忽略这些主机。我可以像往常一样使用“--ignore-hosts (ip)”访问特定网站,但我需要忽略所有 HTTPS/SSL 主机。 有什么办法可以做到这一点吗?

非常感谢!

在 mitmproxy GitHub 上有一个名为 tls_passthrough.py 的脚本文件,它会忽略先前由于用户不信任新证书而导致握手失败的主机。虽然它不会为其他会话保存。

这也意味着来自该特定主机的第一个 SSL 连接将始终失败。我建议您做的是将之前失败的所有 IP 写到文本文档中,并忽略该文本文件中的所有主机。

tls_passthrough.py

要简单地启动它,只需添加脚本参数“-s(tls_passthrough.py 路径)”

示例,

mitmproxy -s tls_passthrough.py

您需要一个简单的插件脚本来忽略所有 tls 连接。

import mitmproxy

class IgnoreAllTLS:
    def __init__(self) -> None:
        pass

    def tls_clienthello(self, data: mitmproxy.proxy.layers.tls.ClientHelloData):
        '''
        ignore all tls event
        '''
        # LOGC("tls hello from "+str(data.context.server)+" ,ignore_connection="+str(data.ignore_connection))
        data.ignore_connection = True

addons = [
    IgnoreAllTLS()
]

最新版本(目前为7.0.4)还不支持ignore_connection功能,所以你需要安装主源版本:

git clone https://github.com/mitmproxy/mitmproxy.git
cd mitmproxy
python3 -m venv venv

在启动代理之前激活 venv

source /path/to/mitmproxy/venv/bin/activate

启动 mitmproxy

mitmproxy -s ignore_all_tls.py