【问题标题】:mitmproxy & python - ignore all hosts with https/sslmitmproxy & python - 忽略所有带有 https/ssl 的主机
【发布时间】:2018-11-14 21:39:10
【问题描述】:

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

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

非常感谢!

【问题讨论】:

    标签: python mitmproxy


    【解决方案1】:

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

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

    tls_passthrough.py

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

    例子,

    mitmproxy -s tls_passthrough.py
    

    【讨论】:

      【解决方案2】:

      您需要一个简单的插件脚本来忽略所有 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
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-07-15
        • 2014-08-28
        • 1970-01-01
        • 2017-05-01
        • 1970-01-01
        • 2018-03-04
        • 2013-10-28
        • 2017-02-21
        相关资源
        最近更新 更多