我的编程空间,编程开发者的网络收藏夹
学习永远不晚

【mitmproxy】一、简介与快速上手

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

【mitmproxy】一、简介与快速上手

一、功能简介

  1. 实时拦截、修改 HTTP/HTTPS 请求和响应
  2. 可保存完整的 http 会话,方便后续分析和重放
  3. 支持反向代理模式将流量转发到指定服务器
  4. 支持 macOS 和 Linux上的透明代理模式
  5. 支持用 Python 脚本对 HTTP 通信进行修改

二、安装

pip3 install mitmproxy

使用 pip 快速安装 mitmproxy(前提已经安装了 python>=3.6 环境):

pip3 install mitmproxy

image-20220916183242131

macOS 用户也可以用 brew 安装

brew install mitmproxy

windows用户建议安装Windows Terminal以提高终端渲染效率

Docker 镜像地址

三、核心组件简介

mitmproxy 主要包含以下三个工具,你可以从 python 安装目录下的 Scripts 文件夹下找到,并为其创建快捷方式,方便以后使用

image-20220916183557748

这三个命令功能一致,且都可以加载自定义脚本,唯一的区别是交互界面的不同。

1. mitmproxy

img

mitmproxy 是一个控制台工具,允许交互式检查和修改 HTTP 流量。它与 mitmdump 的不同之处在于所有流都保存在内存中,这意味着它旨在获取和处理小样本。使用 ? 问号键查看上下文相关使用文档。

windows 暂不支持

2. mitmweb

img

mitmweb 是 mitmproxy 的基于 Web 的用户界面,允许交互式检查和修改 HTTP 流量。与 mitmproxy 一样,所有流都保存在内存中.

目前还处于beta测试阶段,许多 mitmproxy 特性还不支持。

个人觉得这个东西不好用,也不是我们着重学习的东西,可视化的抓包、过滤工具有很多,同类型比这个好用的有charles(强推)、fiddler、Burpsuit等,专业点的 Wireshark(不适合http),不管是做开发、运维、测试,总得熟练使用一款抓包工具,但肯定不是 minweb 🤣

3. mitmdump

mitmdump 提供了类似 tcpdump 的功能(做过运维的同学应该都会用😁),让你可以查看、记录和以编程方式转换 HTTP 流量。有关完整文档,请参阅 --help 参数。

示例1 :保存流量包

# 开启代理监听模式(默认8080端口),并将抓到的所有包保存到 outfilemitmdump -w outfile

示例2:过滤并保存流量

mitmdump -nr infile -w outfile "~m post"

启动 mitmdump 在不绑定代理端口(-n)的情况下,从 infile 读取所有流,并按指定的表达式(仅匹配 POST)过滤后,写入 outfile。

示例3:客户端重放

mitmdump -nC outfile

启动 mitmdump 在不绑定到代理端口 (-n)的情况下,然后重放来自 outfile (-C 文件名) 的所有请求。

显然,你也可以重放一个文件(class="lazy" data-srcfile),并将其写入另一个文件(dstfile):

mitmdump -nC class="lazy" data-srcfile -w dstfile

客户端重放功能详见连接:client-side replay

示例4:执行脚本

mitmdump -s examples/simple/add_header.py

运行 add_header.py 官方示例脚本,该脚本是为所有 response 添加一个新标头。

示例5:数据转换

mitmdump -ns examples/simple/add_header.py -r class="lazy" data-srcfile -w dstfile

此命令从 class="lazy" data-srcfile 加载流,根据指定的脚本对其进行转换,然后将其写回 dstfile。

四、🚨安装ssl证书

mitmproxy 作为一个常规的http代理服务器使用时,默认监听 http://localhost:8080,因此要想数据包经过 mitmproxy,需要配置浏览器的代理(本机或其他机器),代理设置步骤请自行搜索(比如插件:SwitchyOmega)。

代理设置好后可打开 http://mitm.it 验证http流量是否经过 mitmproxy。

如果显示以下文字,则代理配置的不对,流量不走 mitmproxy

If you can see this, traffic is not passing through mitmproxy.

如果配置正确,打开 http://mitm.it 会显示如下界面:

img

mitmproxy 中可以看到抓到的数据包:

image-20220920232445665

在上面的浏览器页面中根据你的操作系统,选择下载相应的证书文件,然后点击后面的 Show Instructions 按钮显示证书安装步骤,看不懂英文的小伙伴可以直接翻译过来

使用 mitmproxy 抓包时,发现很多请求会返回 413 错误,找到解决方案是抓包时候,添加 --set http2=false 参数,比如:

mitmweb.exe -s .\gid.py --set http2=false

来源地址:https://blog.csdn.net/wanzheng_96/article/details/126964292

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

【mitmproxy】一、简介与快速上手

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

1小时快速上手RabbitMQ(简介及安装过程)

RabbitMQ简称MQ全称是MessageQueue(消息队列),是在消息的传输过程中保存消息的容器,多用于分布式系统之间进行通信,本文给大家讲解了RabbitMQ简介与安装,结合实例代码给大家介绍的非常详细,需要的朋友跟随小编一起看看吧
2023-01-04

Kylin on Parquet 介绍和快速上手

Apache Kylin on Apache HBase 方案经过长时间的发展已经比较成熟,但是存在着一定的局限性。因此,Kyligence 推出了 Kylin on Parquet 方案。本文中,Kyligence 的大数据研发工程师王汝鹏讲解了该解决方案的
Kylin on Parquet 介绍和快速上手
2018-09-13

直播报名| Kylin on Parquet 介绍及快速上手

熟悉的 Kylin 的朋友都知道,Apache Kylin 构建完的数据是存储在 HBase 中的。Kylin on HBase 方案经过长时间的发展已经比较成熟,但是也还存在着一定的局限性。面对以上问题,Kyligence 推出了 Kylin On Parq
直播报名| Kylin on Parquet 介绍及快速上手
2016-03-15

Win10 手机预览版10149简单快速上手体验视频

今天微软推送了最新的Win10手机预览版10149,包括一系列功能、性能提升和修复。Win10 Mobile预览版10149对于Windows Insider用户来说更加稳定,在www.cppcns.comUX体验上有不错的进步。下面就详情
2023-06-16

Python如何快速上手? 快速掌握一门新语言的方法

那么Python如何快速上手?找来了一篇广受好评的新语言学习方法介绍,供大家参考。 听说,你决定要为你的 “技能树” 再添加一门特定的编程语言。那该怎么办呢? 在这篇文章中,作者提出了 12 项关于学习技术的建议。记住每个人学习的方式都不一
2022-06-04

typescript快速上手的进阶类型与技术

本文讲述了typescript开发的一些高级的类型与技术,算是对于基础知识点的补充,具体内容包括:比如元组、枚举类、接口、泛型相关概念等。虽说是进阶,但是内容不算多也并不难理解。
2022-12-30

用Java Jersey快速搭建RESTful API,简单、高效、易上手

想要在Java中轻松而快速地构建一个RESTful API?Jersey框架可以帮到你,它简单易学,能够帮助您快速搭建RESTful API。
用Java Jersey快速搭建RESTful API,简单、高效、易上手
2024-02-27

linux服务器快速卸载安装node环境(简单上手)

1.先卸载npmsudo npm uninstall npm -g2.卸载nodeyum remove nodejs npm -y看看是否有残留 进入 /usr/local/lib 删除所有 node 和 node_modules文件夹 进
2022-06-03

学习Python编程并快速上手:安装matplotlib的简易指南

快速入门Python编程:Matplotlib安装指南,需要具体代码示例引言:Python是一种简单易学的编程语言,广泛应用于数据分析、科学计算、可视化等领域。而Matplotlib作为Python中最常用的数据可视化库之一,具有强大的绘
学习Python编程并快速上手:安装matplotlib的简易指南
2024-01-17

快速上手pygame:简易安装指南及游戏编程起步

简明教程:轻松安装 pygame,快速开始游戏编程导语:pygame 是一个用于开发游戏的 Python 模块,它提供了一系列简单易用的函数和工具,使得开发者能够更方便地创建自己的游戏。本文将带领读者轻松安装 pygame 并提供代码示例
快速上手pygame:简易安装指南及游戏编程起步
2024-02-24

一种简洁快速的方式在Ubuntu系统上安装pip3

Ubuntu是一种常用的操作系统,特别适用于开发人员和技术爱好者。在Ubuntu系统中,pip3是一个极为有用的软件包管理工具,它可以用来安装和管理Python的第三方库。本文将介绍如何在Ubuntu系统下安装pip3,并提供具体的代码示例
一种简洁快速的方式在Ubuntu系统上安装pip3
2024-01-18

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录