一、安装与配置
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/n/136920.html