在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/

作者:小蜗牛的成长
链接:https://www.jianshu.com/p/749a6b766884
來源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

初步认识mitmproxy(一)的更多相关文章

  1. 移动端之Android开发的几种方式的初步体验

    目前越来越多的移动端混合开发方式,下面列举的大多数我都略微的尝试过,就初步的认识写个简单的心得: 开发方式 开发环境 是否需要AndroidSDK 支持跨平台 开发语言&技能 MUI Win+ ...

  2. CSharpGL(29)初步封装Texture和Framebuffer

    +BIT祝威+悄悄在此留下版了个权的信息说: CSharpGL(29)初步封装Texture和Framebuffer +BIT祝威+悄悄在此留下版了个权的信息说: Texture和Framebuffe ...

  3. Android自定义View初步

    经过上一篇的介绍,大家对于自定义View一定有了一定的认识,接下来我们就以实现一个图片下显示文字的自定义View来练习一下.废话不多说,下面进入我们的正题,首先看一下我们的思路,1.我们需要通过在va ...

  4. 初步认识Node 之Node为何物

    很多人即便是在使用了Node之后也不知道它到底是什么,阅读完本文你应该会有一个初步的.具体的概念了.    Node的目标 提供一种简单的构建可伸缩网络程序的方法.那么,什么是可伸缩网络程序呢?可伸缩 ...

  5. [入门级] 基于 visual studio 2010 mvc4 的图书管理系统开发初步 (二)

    [入门级] 基于 visual studio 2010 mvc4 的图书管理系统开发初步 (二) Date  周六 10 一月 2015 By 钟谢伟 Category website develop ...

  6. 基于C/S架构的3D对战网络游戏C++框架 _05搭建系统开发环境与Boost智能指针、内存池初步了解

    本系列博客主要是以对战游戏为背景介绍3D对战网络游戏常用的开发技术以及C++高级编程技巧,有了这些知识,就可以开发出中小型游戏项目或3D工业仿真项目. 笔者将分为以下三个部分向大家介绍(每日更新): ...

  7. Azure底层架构的初步分析

    之所以要写这样的一篇博文的目的是对于大多数搞IT的人来说,一般都会对这个topic很感兴趣,因为底层架构直接关乎到一个公有云平台的performance,其实最主要的原因是我们的客户对此也非常感兴趣, ...

  8. CozyRSS开发记录14-RSS源管理初步完工

    CozyRSS开发记录14-RSS源管理初步完工 1.添加源的响应 DialogHost.Show有几个版本的重载,加一个DialogClosingEventHandler参数.我们让添加源对话框的添 ...

  9. 初步了解CPU

    了解CPU By JackKing_defier 首先说明一下,本文内容主要是简单说明CPU的大致原理,所需要的前提知识我会提出,但是由于篇幅我不会再详细讲解需要的其他基础知识.默认学过工科基础课. ...

随机推荐

  1. OpenFlow PacketOut消息机制

    OpenFlow PacketOut消息机制 前言 由于最近实验的进行,遇到一个比较棘手的问题,就是利用控制器主动发送packet消息的问题,期间遇到一些问题,后来在RYU群中得到群友左木的帮助成功解 ...

  2. node模块加载机制。

  3. Linux命令(二十) 显示系统内存状态 free

    一.命令简介 free 命令会显示内存的使用情况,包括实体内存,虚拟的交换文件内存.共享内存区段,以及系统核心使用的缓冲区等. 二.参数说明 -b 以Byte为单位显示内存使用情况 -K 以KB为单位 ...

  4. 查看iOS应用crash日志

    基本操作: 1.电脑安装好Xcode,连接好手机设备 2.打开Xcode,点击Window-Devices and Simulators 3.选中手机设备,点击View Device Logs,即可查 ...

  5. 通信对象 System.ServiceModel.Channels.ServiceChannel 无法用于通信,因为其处于“出错”状态。

    通信对象 System.ServiceModel.Channels.ServiceChannel 无法用于通信,因为其处于“出错”状态. 在 System.ServiceModel.Channels. ...

  6. SSM 项目搭建 (IDEA)

    好好想了想,还是准备给大家发一个简单的SSM的项目搭建教程. 我觉得通常来说,只是XML的配置文件可能让人头痛了点,其他的倒真不是问题. 不过话说回来,mybatis一直让我觉得用起来不方便.因为数据 ...

  7. 【题解】 bzoj2748 [HAOI2012]音量调节 (动态规划)

    懒得复制,戳我戳我 Solution: 傻逼题目,直接dp就可以了,他是求最后一次的最大值 Code: //It is coded by Ning_Mew on 4.17 #include<bi ...

  8. 洛谷P2605 基站选址

    神TM毒瘤线段树优化DP......新姿势get. 题意:有n个村庄,在里面选不多于k个建立基站. 建立基站要ci的费用.如果一个村庄方圆si内没有基站,那么又要支出wi的费用.求最小费用. 解:很显 ...

  9. POJ - 2240 Arbitrage(Bellman-Ford)

    https://vjudge.net/problem/POJ-2240 题意 已知n种货币,以及m种货币汇率及方式,问能否通过货币转换,使得财富增加. 分析 Bellman-Ford判断正环,注意初始 ...

  10. bzoj千题计划174:bzoj1800: [Ahoi2009]fly 飞行棋

    http://www.lydsy.com/JudgeOnline/problem.php?id=1800 圆上两条直径构成矩形的对角线 #include<cstdio> using nam ...