等峰也等你

博客园 首页 新随笔 联系 订阅 管理

Mitmproxy 简介

 
  • mitmproxy:交互式的命令行工具
    • 注意:不支持 windows
  • mitmweb:基于浏览器的界面交互工具
  • mitmdump:简单的终端输出,可以编写强大的插件和脚本

官方网站:https://mitmproxy.org/

https://docs.mitmproxy.org/stable/

Mitmproxy 安装

 python 3.8版本

推荐使用 python 进行安装

// 方式一
pip install mitmproxy==5.2.0

// 方式二
pip install pipx
pipx install mitmproxy==5.2.0

// 验证是否安装成功
mitmdump --version

//终端启动mitmdump 服务方法
直接输入;mitmdump

PC 端证书配置

 
  1. 配置电脑代理
  2. 启动 mitmproxy
  3. 在浏览器输入地址 mitm.it
  4. 选择对应系统下载证书并安装
mitmporxymitmporxy

移动端证书配置

 
  1. 在手机配置代理,ip 配置为电脑的 ip 地址,端口配置为 mitmproxy 监听端口
  2. 启动 mitmproxy
  3. 在手机浏览器输入地址 mitm.it
  4. 选择 Android,下载并安装,即可成功抓取手机端的 https 的数据包。

核心工具演示

 
  • mitmproxy
  • mitmweb
  • mitmdump

 

mitmdump 参数介绍

 
  • -p 参数,指定监听端口,默认监听 8080
  • -s 参数,执行 python 脚本

核心组件

 
  • Addons(插件):https://docs.mitmproxy.org/archive/v5/addons-overview/
  • Events(事件):https://docs.mitmproxy.org/archive/v5/addons-events/

脚本编写

 
# 创建 python 文件 request_demo.py
def request(flow):
    flow.request.headers["myheader"] = "value"
// mitmdump 执行命令
mitmdump -p 8999 -s xx/request_demo.py

实现 MapLocal

 
  1. 创建一个本地文件,设定响应数据
  2. 编写脚本,在请求事件中,即给响应对象复制
  3. 执行命令
  4. 访问浏览器验证结果
from mitmproxy import http

# request 名称不能被改变
# mitmdump 加载这个脚本的时候
# 当有请求来的时候,就会回调这个request方法
# flow 为抓取到的请求信息
def request(flow: http.HTTPFlow) -> None:
    
    # 发起请求,判断url是不是等于一个路径
    if flow.request.pretty_url == "http://example.com/path":
        # 一旦请求的url等于我们的预期,我们就会创造一个response
        # 这个response比较简单,请求状态码为200,响应数据位hello world
        # 响应数据格式为html
        flow.response = http.HTTPResponse.make(
            200,  # (optional) status code
            b"Hello World",  # (optional) content
            {"Content-Type": "text/html"}  # (optional) headers
        )

实现 Rewrite

 
  1. 修改股票名称
  2. 修改股票价格
from mitmproxy import http

# response 名称不能被改变
# mitmdump 加载这个脚本的时候
# 当拦截到响应之后,就会回调这个 response 方法
# flow 为抓取到的接口信息
def response(flow: http.HTTPFlow):
    # 打印响应内容
    print(flow.response.content)
posted on 2024-01-14 23:50  等峰也等你  阅读(12)  评论(0编辑  收藏  举报