1、安装居然使用的pip
pip install mitmproxy
导入证书,密码为空


2、启用mitmweb
修改firefox的代理指向local:8080口即可
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)
-