一、安裝與配置
1、安裝mitmproxy
pip install mitmproxy
2、配置代理
# macos或linux用戶
export http_proxy="http://127.0.0.1:8080"
export https_proxy="http://127.0.0.1:8080"
# windows用戶
set http_proxy=http://127.0.0.1:8080
set https_proxy=http://127.0.0.1:8080
3、啟動mitmproxy
mitmproxy
二、基本使用
1、查看請求
mitmdump
2、過濾請求
mitmproxy -v -s filter.py
其中,filter.py文件中可以自定義過濾規則。
3、修改請求
mitmproxy -v -s modify.py
其中,modify.py文件中可以定義請求的修改、添加或刪除。
三、高級使用
1、使用mitmproxy構建自己的代理伺服器
from mitmproxy import http
def request(flow: http.HTTPFlow) -> None:
flow.request.port = 8000 # 修改請求的埠
flow.request.headers['user-agent'] = 'Mozilla/5.0' # 修改請求的User-Agent
def response(flow: http.HTTPFlow) -> None:
flow.response.headers['X-Frame-Options'] = 'DENY' # 修改響應的X-Frame-Options
2、使用mitmproxy實現介面Mock
from mitmproxy import http
import json
def response(flow: http.HTTPFlow) -> None:
if flow.request.pretty_url == "http://api.example.com/get_data":
# 返回Mock數據
data = [{"name": "Alice", "age": 25}, {"name": "Bob", "age": 30}]
flow.response = http.HTTPResponse.make(
200,
json.dumps(data),
{"Content-Type": "application/json"}
)
3、使用mitmproxy實現自動化測試
from mitmproxy import http
def request(flow: http.HTTPFlow) -> None:
if flow.request.path.startswith("/login"):
# 模擬用戶登錄
flow.request.headers['cookie'] = 'session_id=abcdefg'
# 記錄登錄之後的響應
ctx.log.info(flow.response.text)
def response(flow: http.HTTPFlow) -> None:
if flow.request.path.startswith("/add"):
# 模擬用戶添加數據
flow.request.headers['cookie'] = 'session_id=abcdefg'
# 記錄添加之後的響應
ctx.log.info(flow.response.text)
四、常用命令
1、查看請求
mitmdump
2、查看請求和響應
mitmproxy
3、過濾請求
mitmproxy -v -s filter.py
4、修改請求
mitmproxy -v -s modify.py
5、導出請求和響應
mitmproxy -s export.py
其中,export.py文件中可以自定義導出的格式。
五、總結
本文介紹了mitmproxy的安裝與配置、基本使用、高級使用及常用命令,並給出了對應的代碼示例。希望能夠幫助讀者更好地理解和使用mitmproxy。
原創文章,作者:IEBF,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/136920.html