mitmproxy的安装【macOS】及使用

mitmproxy的安装

打开mitmproxy官网,可以看到官方提供的安装命令,使用brew来直接进行安装

brew install mitmproxy

image

如果是windows系统,可以看考mitmproxy的windows安装方法来进行安装

mitmweb的使用

1、打开mitmweb

#命令行输入mitmweb,即可在浏览器中打开本地的mitmweb的监听页面
mitmweb

image
image

2、配置系统代理或谷歌OmegaSwitch插件代理【我这里使用的谷歌浏览器插件】

image

3、安装证书,切换至mitm代理,浏览器中输入mitm.it

image

点击mac,下载证书

image

双击下载的证书,进行证书安装,并信任

image

4、访问https站点,查看加密信息是否能正常查看

image

mitmdump的使用

1、命令行输入mitmdump启动mitmdump,默认监听8080,也可以使用-p参数指定端口

mitmdump

mitmdump -p 8090

image

2、mitmdump实现charles的maplocal功能

先抓取要篡改的接口信息

image

编写插件代码,先查看下能否正常获取到接口数据

可以参考官方文档的插件例子

import mitmproxy.http
from mitmproxy import ctx


class ZWmaplocal:
    def __init__(self):
        self.num = 0

    def request(self, flow: mitmproxy.http.HTTPFlow):
        self.num += 1
        ctx.log.info("We've seen %d flows" % self.num)
        ctx.log.info("Base content %s" % str(flow.get_state()))


addons = [
    ZWmaplocal()
]

image

接着,对request方法进行修改,实现maplocal,修改响应的内容,with中本地读取之前抓取到接口中的response内容,将要修改的内容修改后保存

image

from mitmproxy import http, ctx


class ZWmaplocal:
    def __init__(self):
        self.num = 0

    def request(self, flow: http.HTTPFlow):
        # if "baidu" in flow.request.pretty_url:
        if f"v5/stock/batch/quote.json" in flow.request.pretty_url:
            with open(r"/Users/CreamK/Desktop/maplocal.json", "r", encoding="utf-8") as f:
                flow.response = http.HTTPResponse.make(
                    200,  # (optional) status code
                    f.read(),  # (optional) content
                    {"Content-Type": "application/json"}  # (optional) headers
                )


addons = [
    ZWmaplocal()
]

刷新页面,即可看到信息修改成功

image

posted @ 2021-06-15 22:11  Hei蛋炒饭  阅读(2466)  评论(0编辑  收藏  举报