使用Python创建Charles代理替代项

问题描述 投票:0回答:1

我现在正在使用Charles代理来监视我的设备和网站之间的流量。流量是SSL,我可以在Charles上读取它。问题是,当我通过JSON对象中的数百个变量进行过滤时,查尔斯使内容难以阅读。我创建了一个程序,该程序将在导出查尔斯日志后过滤JSON。我的下一步是彻底摆脱查理,并在python中创建我自己的代理,该代理可以查看http和https数据。我想知道是否可以使用scapy或任何其他现有的库?我对scapy感兴趣,因为我可以将代理日志另存为pcap文件。

python proxy charles-proxy
1个回答
0
投票

通过mitmproxy进行的阅读将不胜枚举,因为它是一个庞大的来源库。如果您想从头开始实现代理服务器。这是我在开发Proxyman时学到的

  1. 了解如何设置小型代理服务器:基本上,在您的端口(例如9090)上打开侦听套接字。接受任何传入的请求并获取HTTP消息的第一行。可以完成轻量级的http解析器或任何Python解析器。原始HTTP消息如下所示:

    CONNECThttps://google.comHTTP / 1.1

  2. 解析并获取google和IP:打开与目标IP的套接字连接,并开始从客户端目标服务器进行收发,然后再返回。

  3. 第一步对于在此步骤中实现HTTP代理至关重要。使用http-parser解析其余的HTTP消息。因此,您可以从Request / Response-> Present to UI

  4. 中获取标题和正文。
  5. 了解HTTPS和SSL如何工作:使用OpenSSL生成自签名证书以及如何生成链证书。

  6. 了解如何通过使用Apple的安全CLI或安全框架将那些证书导入到macOS钥匙串中。

  7. 完成后:是时候开始HTTPS拦截了:开始第二步,并在两端都使用适当的证书进行SSL握手(客户端->代理服务器和代理服务器->目标)

  8. ] >
  9. 照常解析HTTP消息并获取其余消息。

  10. 总体上,有很多开放源代码,但是我建议从简单版本开始,然后再继续。

    希望对您有所帮助。

© www.soinside.com 2019 - 2024. All rights reserved.