macOS使用mitmprox抓取https请求

AI技术分享5个月前更新 AIGC吧
170 views 0 0

今天遇到了一个问题就是在开发过程中想抓取https的流量使用了非常多的工具。比如Charles、BurpSuite等等。估计是我证书的原因,配置了都不能抓取到https的流量。于是想到了使用python的mitmprox库开发一个抓取https流量的脚本。废话不多说,直接上流程。

1、安装mitmprox

pip install mitmproxy

2、创建一个proxy.py文件

我这里增加了一个判断,就是只保存host=aigcba.com的请求信息。这个可以根据自己的实际情况进行改动。

from mitmproxy import http

def request(flow: http.HTTPFlow) -> None:
    if "aigcba.com" in flow.request.host:
        with open("log.logs", "a") as log_file:
            log_file.write(f"Request: {flow.request.method} {flow.request.url}\n")
            for key, value in flow.request.headers.items():
                log_file.write(f"{key}: {value}\n")
            if flow.request.method == 'POST':
                log_file.write(f"Body: {flow.request.content}\n")
            log_file.write("\n")

if __name__ == "__main__":
    from mitmproxy.tools.main import mitmdump
    mitmdump(['-s', __file__])

3、安装和信任mitmproxy的证书

要抓取https流量就必须要安装证书。

1.启动mitmproxy:

在终端运行:mitmproxy

2.访问mitmproxy网页:

在浏览器中,访问 http://mitm.it。

3.下载并安装证书:

根据你的操作系统选择相应的证书下载并安装。

4.在macOS上信任证书:

•打开钥匙串访问工具。
•将下载的mitmproxy-ca-cert.pem文件导入到系统钥匙串中。
•找到并双击该证书,展开“信任”部分,将“使用此证书”设置为“始终信任”。

4、配置浏览器代理:

使用SwitchyOmega或直接在浏览器中设置代理为127.0.0.1,端口为8080(mitmproxy的默认端口)。

5、重新运行mitmproxy:

在终端中运行以下命令,启动代理并指定脚本:

mitmproxy -s proxy.py(你创建的python文件名称)

6、访问网站:

在浏览器中访问https://aigcba.com,所有请求将被捕获并打印到终端。这个时候终端会打印所有的浏览器请求。log.logs里面就只会保存aigcba.com的请求记录。因为我们在前面的代码里面进行了判断。

macOS使用mitmprox抓取https请求

log.logs文件内容

macOS使用mitmprox抓取https请求

 

 

© 版权声明

相关文章

暂无评论

暂无评论...