美文网首页
初步认识mitmproxy(一)

初步认识mitmproxy(一)

作者: 小蜗牛的成长 | 来源:发表于2018-07-28 14:15 被阅读0次

    作为一名伟大的测试工程师,工作中免不了需要与各种接口打交道,构造假数据、修改response等等

       在windows机器上,经常用的最多的是fiddler工具,很强大,图形化界面,使用方便、简单;在mac上,Charles 类似fiddler工具,同样是易于操作的图形化界面,同样都是通过代理的方式实现抓包功能,可通过工具分析http(s)包、修改resquest、response内容,满足日常需求
       而笔者不想每次打开fiddler、手动去修改request或者response,希望通过脚本定制化实现篡改。首选mitmproxy , mitmproxy顾名思义中间人代理【man-in-the-middle proxy】,和fiddler、Charles等工具类似,通过代理方式实现对http(s)的拦截

    环境

      1.Python3.6及以上 (python -V查看版本)
       2.更新pip(避免部分依赖包未下载)
       3.安装mitmproxy
         pip install mitmproxy #安装依赖包的同时也将环境安装

    介绍

    引用原文:
    The mitmproxy project’s tools are a set of front-ends that expose common underlying functionality.
       mitmproxy is an interactive man-in-the-middle proxy for HTTP and HTTPS with a console interface.
       mitmdump is the command-line version of mitmproxy. Think tcpdump for HTTP.
       mitmweb is a web-based interface for mitmproxy.
    也就是说:
    mitmproxy工程工具包,主要包含了3个组件
       mitmproxy:拦截的http(s)记录控制台显示 【window不支持】
       mitmdump:命令行接口,可以对接python脚本,通过脚本实现监听后的处理,可定制个人需求
       mitmweb:web形式展示

    特性

       - Intercept HTTP & HTTPS requests and responses and modify them on the fly
       - Save complete HTTP conversations for later replay and analysis
       - Replay the client-side of an HTTP conversations
       - Replay HTTP responses of a previously recorded server
       - Reverse proxy mode to forward traffic to a specified server
       - Transparent proxy mode on OSX and Linux
       - Make scripted changes to HTTP traffic using Python
       - SSL/TLS certificates for interception are generated on the fly
       - And much, much more…

    使用

    配置代理
       - 手机和电脑同处一个局域网,配置手机代理设置,与其他代理工具的配置方式一致
       - 访问mitm.it 网址,直接下载、安装、信任CA证书(https协议需要)

    使用mitmproxy【window不可用,linux、mac可使用,笔者使用linux系统】
       - 启动mitmproxy,默认8080,可指定端口
       mitmproxy -p 8888

       - 控制台快捷命令说明

    按键 说明
    q 退出(相当于返回键,可一级一级返回)
    d 删除当前(黄色双箭头)指向的链接
    D 恢复刚才删除的请求
    G 跳到最新一个请求
    g 跳到第一个请求
    C 清空控制台(C是大写)
    i 可输入需要拦截的文件或者域名(起到过滤作用)
    a 放行请求
    A 放行所有请求
    ? 查看界面帮助信息
    ^ v 上下箭头移动光标
    enter 查看光标所在列的内容
    tab 分别查看 Request 和 Response 的详细信息
    / 搜索body里的内容
    esc 退出编辑
    e 进入编辑模式

    结语

       这里仅仅介绍了环境搭建及mitmproxy的使用,其实很类似fiddler,甚至没有fiddler直观,不过用习惯了命令也是操作比较简单的,但是我的目的不在于此,我的目的是通过脚本的方式定制化篡改http(s)的request或者response,下一章继续mitmdump
    【官网】https://docs.mitmproxy.org/stable/tools-mitmproxy/

    相关文章

      网友评论

          本文标题:初步认识mitmproxy(一)

          本文链接:https://www.haomeiwen.com/subject/kutomftx.html