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# 打印请求的urlinfo('-------------------------------------------->>>>>>>>>>')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.infoinfo('--------------------------------------------<<<<<<<<<<<<<<<<<')# 打印响应码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 httpdef request(flow: http.HTTPFlow):# 增加请求的头信息flow.request.headers["myheader"] = "shifeng"print(flow.request.headers)