mitmproxy

一、安装

https://www.mitmproxy.org/

二、使用

1、命令行

mitmproxy win不支持

mitmproxy -h  查看帮助文档

mitmproxy -p 8999 指定监听端口8999

打开电脑端代理 指定代理为127.0.0.1 8999

证书安装:

    开启代理

        网络internet选项中设置代理

    浏览器端访问mitm.it 下载证书进行安装

查看信息:

    上下滑动查看

    鼠标单击一条信息 可查看具体内容

    q退出详细信息界面

信息中搜索:

    f键

退出:

    q 退出

    y yes

2、web端工具

启动:

    mitmweb -p 8999

在浏览器端可以拦截请求:

    在第二栏输入的内容 会被拦截

    第一栏输入的内容,可以搜索请求信息

3、mitmdump

默认监控8080端口

-p 指定监听端口

-s python文件  加载python脚本

录制与回放

录制  mitmdump -w tmp

        -w 指定写入的文件

过滤 mitmdump -nr tmp -w tmp2 "~s hogwarts"

        -n 不开启代理

        -r 读取文件

        ~s  过滤请求内容  过滤表达式内容参考文档: https://docs.mitmproxy.org/stable/concepts-filters/

回放 mitmdump -nC tmp2

        -C回放

maplocal

例子1:

创建python文件

使用命令行

    mitmdump -p 8999 -s E:\py1\mitm_proxy\request_demo.py

请求头中增加了myheader字段,且值为liucheng

例子2:

对百度进行maplocal

脚本中设置了当url为百度首页的时候,自定义一个response,返回内容为helloworld

命令行启动

mitmdump -p 8999 -s E:\py1\mitm_proxy\maplocal_baidu.py

在浏览器中访问百度首页,显示效果为:

例子3:

对雪球app进行maplocal

    quote.json 为雪球的一个信息json文件

命令行启动:

    mitmdump -p 8999 -s E:\py1\mitm_proxy\maplocal_xueqiu.py

cmd中访问:

    curl https://www.baidu.com/***/quote.json -x 127.0.0.1:8999

    由于请求中带有quote.json 所以也会返回本地quote.json内容

在模拟器上访问雪球app会发现显示内容也是本地的quote.json内容

rewrite

创建py文件:

首先获取content内容,将content内容保存到data中,content原来为二进制,通过json.loads将其转换成json格式,字典格式

通过json格式修改内容 具体修改方法参考文档:https://github.com/json-path/JsonPath

然后通过json.dumps将字典格式转换成text格式并修改值

命令行运行:

mitmdump -p 8999 -s E:\py1\mitm_proxy\rewrite_xueqiu.py

在模拟器查看雪球app:

maplocal和rewrite区别

rewrite请求了服务器 maplocal没有请求服务器

自动生成等价类数据

你可能感兴趣的:(mitmproxy)