1、安装居然使用的pip
pip install mitmproxy
导入证书,密码为空
2、启用mitmweb
pause
直接可以查看方式
搜索里输入login
对于http协议 直接看到了密码原文
3、后台日志方式
录入和回放
mitmdump -w baidu.txt pause 录制结束 mitmdump -nC baidu.txt pause 回放结束
在txt可以搜索关键字
4、附加脚本方式
这个例子可以看到对req和res的变量显示
mitmdump -s lyc.py pause
from mitmproxy import ctx
# 所有发出的请求数据包都会被这个方法所处理
# 所谓的处理,我们这里只是打印一下一些项;当然可以修改这些项的值直接给这些项赋值即可
def request(flow):
# 获取请求对象
request = flow.request
# 实例化输出类
info = ctx.log.info
# 打印请求的url
info('-------------------------------------------->>>>>>>>>>')
info(request.url)
# 打印请求方法
info(request.method)
# 打印host头
info(request.host)
# 打印请求端口
info(str(request.port))
# 打印所有请求头部
info(str(request.headers))
# 打印cookie头
info(str(request.cookies))
# 所有服务器响应的数据包都会被这个方法处理
# 所谓的处理,我们这里只是打印一下一些项
def response(flow):
# 获取响应对象
response = flow.response
# 实例化输出类
info = ctx.log.info
info('--------------------------------------------<<<<<<<<<<<<<<<<<')
# 打印响应码
info(str(response.status_code))
# 打印所有头部
info(str(response.headers))
# 打印cookie头部
info(str(response.cookies))
# 打印响应报文内容
info(str(response.text))
比如附加header的例子
mitmdump -s addheader.py pause 录制结束
#!/usr/bin/python
# -*- coding: UTF-8 -*-
"""
@author:chenshifeng
@file:test_mitm.py
@time:2020/11/29
"""
from mitmproxy import http
def request(flow: http.HTTPFlow):
# 增加请求的头信息
flow.request.headers["myheader"] = "shifeng"
print(flow.request.headers)