首页 > 解决方案 > MITM Proxy - 通过 python 脚本拦截和修改 https 内容

问题描述

我正在尝试https使用Mitm Proxy.

使用 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")

但是,我截获的内容是加密的,尽管网页 GUI 上的内容是清晰的,但内容并不清晰!

有谁知道为什么我的脚本会拦截加密内容而 Web GUI 会打印出清晰的数据?

标签: pythonhttpsproxymitmproxy

解决方案


看起来您想使用response.textor response.content,而不是response.raw_content。raw_content 包含原始压缩的HTTP 消息体,而.content包含未压缩的版本。


推荐阅读