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.text
或 response.content
,而不是 response.raw_content
。 raw_content 包含原始 压缩的 HTTP 消息正文,而 .content
包含未压缩的版本。
我正在尝试使用 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.text
或 response.content
,而不是 response.raw_content
。 raw_content 包含原始 压缩的 HTTP 消息正文,而 .content
包含未压缩的版本。