其他分享
首页 > 其他分享> > mitmproxy使用指南

mitmproxy使用指南

作者:互联网

前言

这是一款抓包软件比起其他的抓包软件(如:fiddler、burpsuite),它的优点在于做二次开发加脚本处理文件。

一、python环境安装

本人用的是Python3.7.3去官网下载安装即可。

二、安装mitmproxy

三、使用命令

mitmproxy 工具有以下三部分组成:

四、脚本样例

#!/usr/bin/python
# -*- coding: UTF-8 -*-
from mitmproxy import http

def request(flow: http.HTTPFlow):
    # 增加请求的头信息
    flow.request.headers["myheader"] = "shifeng"
    print(flow.request.headers)
#!/usr/bin/python
# -*- coding: UTF-8 -*-

from mitmproxy import http


def request(flow: http.HTTPFlow):
    # 修改判断条件
    if "quote.json" in flow.request.pretty_url and "x=" in flow.request.pretty_url:
        # 打开保存在本地的数据文件
        with open("/Users/chenshifeng/MyCode/PythonCode/SFDSZL/interface/quote.json") as f:
            # 创造一个 response
            flow.response = http.HTTPResponse.make(
                200,  # (optional) status code
                # 读取文件中数据作为返回内容
                f.read(),
                # 指定返回数据的类型
                {"Content-Type": "application/json"}  # (optional) headers
            )
#!/usr/bin/python
# -*- coding: UTF-8 -*-
import json

from mitmproxy import http


def response(flow: http.HTTPFlow):
    # 加上过滤条件
    if "quote.json" in flow.request.pretty_url and "x=" in flow.request.pretty_url:
        # 把响应数据转化成python对象,保存到data中
        data = json.loads(flow.response.content)
        # 对第一个股票保持原样
        data['data']['items'][0] = data['data']['items'][0]
        # 对第二个股票名字加长一倍
        data['data']['items'][1]['quote']['name'] = data['data']['items'][1]['quote']['name'] * 2
        # 对第三个股票名字变成空
        data['data']['items'][2]['quote']['name'] = None
        # 把修改后的内容赋值给 response 原始数据格式
        flow.response.text = json.dumps(data)

参考:https://www.lmlphp.com/user/23204/article/item/573492/

五、一些报错

现象:安装以后无法使用报错显示 ImportError: cannot import name ‘soft_unicode‘ from ‘markupsafe‘
解决:命令行运行 python -m pip install markupsafe==2.0.1

现象:正常启动比且代理服务器已开启无反应或没有想要的数据
解决:可以是端口被占用了,换个端口试试

现象:抓不到心怡的数据
解决:这里发现window上的设置也有影响关闭如下图设置就出现数据了

标签:http,python,request,flow,mitmproxy,使用指南,data
来源: https://www.cnblogs.com/yisicanmeng/p/16351824.html