【发布时间】:2018-11-14 21:39:10
【问题描述】:
我做了很多研究,但找不到任何能真正解决我的问题的东西。
由于基本上没有站点接受 mitmdumps 证书用于 https,我想忽略这些主机。我可以像往常一样使用“--ignore-hosts (ip)”访问特定网站,但我需要忽略所有 HTTPS/SSL 主机。 有什么办法可以做到这一点吗?
非常感谢!
【问题讨论】:
我做了很多研究,但找不到任何能真正解决我的问题的东西。
由于基本上没有站点接受 mitmdumps 证书用于 https,我想忽略这些主机。我可以像往常一样使用“--ignore-hosts (ip)”访问特定网站,但我需要忽略所有 HTTPS/SSL 主机。 有什么办法可以做到这一点吗?
非常感谢!
【问题讨论】:
在 mitmproxy GitHub 上有一个名为 tls_passthrough.py 的脚本文件,它忽略了之前由于用户不信任新证书而导致握手失败的主机。虽然它不会为其他会话保存。
这也意味着来自该特定主机的第一个 SSL 连接将始终失败。我建议您将之前失败的所有 IP 写到文本文档中,并忽略该文本文件中的所有主机。
要简单地启动它,只需使用脚本参数“-s (tls_passthrough.py path)”添加它
例子,
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
【讨论】: