MITMProxy - 通过 python 脚本拦截和修改 https 内容

MITM Proxy - intercept & Modify https content through python script

我正在尝试使用 Mitm Proxy.

拦截和修改 https 内容

使用 GUI 效果非常好,但我想使用 python 脚本。

我试过这个脚本:

from mitmproxy import http


def request(flow: http.HTTPFlow) -> None:
    if flow.request.pretty_url == "https://www.facebook.com/?l":
        flow.response = http.HTTPResponse.make(
            200,  # (optional) status code
            b"Hello World, this is a test",  # (optional) content
            {"Content-Type": "text/html"}  # (optional) headers
        )

def response(flow: http.HTTPFlow):

    if flow.response.raw_content and flow.request.pretty_url == "https://www.facebook.com/?lol":
        file = open(b"C:\Users\myuser\PycharmProjects\mitmProx\data.txt", "a")
        file.write(str(flow.response.) + "\n")

但是我截取的内容是加密的,不是明文的,尽管web界面上的内容是明文的!

有谁知道为什么我的脚本截取了加密内容而 Web GUI 打印了明文数据?

您似乎想使用 response.textresponse.content,而不是 response.raw_content。 raw_content 包含原始 压缩的 HTTP 消息正文,而 .content 包含未压缩的版本。