mitmproxy的安裝
打開mitmproxy官網,可以看到官方提供的安裝命令,使用brew來直接進行安裝
brew install mitmproxy
如果是windows系統,可以看考mitmproxy的windows安裝方法來進行安裝
mitmweb的使用
1、打開mitmweb
#命令行輸入mitmweb,即可在瀏覽器中打開本地的mitmweb的監聽頁面
mitmweb
2、配置系統代理或谷歌OmegaSwitch插件代理【我這里使用的谷歌瀏覽器插件】
3、安裝證書,切換至mitm代理,瀏覽器中輸入mitm.it
點擊mac,下載證書
雙擊下載的證書,進行證書安裝,並信任
4、訪問https站點,查看加密信息是否能正常查看
mitmdump的使用
1、命令行輸入mitmdump啟動mitmdump,默認監聽8080,也可以使用-p參數指定端口
mitmdump
mitmdump -p 8090
2、mitmdump實現charles的maplocal功能
先抓取要篡改的接口信息
編寫插件代碼,先查看下能否正常獲取到接口數據
可以參考官方文檔的插件例子
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()
]
接着,對request方法進行修改,實現maplocal,修改響應的內容,with中本地讀取之前抓取到接口中的response內容,將要修改的內容修改后保存
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()
]