【问题标题】:MITM Proxy - intercept & Modify https content through python scriptMITMProxy - 通过python脚本拦截和修改https内容
【发布时间】:2021-05-04 22:52:48
【问题描述】:

我正在尝试使用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 GUI 上是清晰的,但并不清晰!

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

【问题讨论】:

  • 你能举一个资源的例子,它在 GUI 中是如何显示的,以及它是如何保存在 data.txt 中的?
  • 是的,这里有一些截图:ibb.co/ncYZPyZ & ibb.co/3rSwdn9

标签: python https proxy mitmproxy


【解决方案1】:

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

【讨论】:

  • 没错!现在这很明显.. 感谢您的回答!
猜你喜欢
  • 2011-01-20
  • 1970-01-01
  • 2012-02-29
  • 1970-01-01
  • 2015-04-16
  • 2019-05-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多