mitmproxy 抓包神器-1.环境准备与抓取浏览器请求

news2025/1/16 14:44:04

前言

常见的抓包工具有fiddler 和 charles, 这些工具都是需要安装本地客户端,python 版的抓包工具可以用 mitmproxy。
mitmproxy 相比Charles、fiddler的优点在于,它可以命令行方式或脚本的方式进行mock

简介

mitmproxy(man-in-the-middle attack proxy),中间人攻击工具,可以用来拦截、修改、保存 HTTP/HTTPS 请求
官方文档地址https://docs.mitmproxy.org/stable/
mitmproxy 工具有以下三个组件构成

  • mitmproxy 是具有 SSL/TLS 功能的交互式拦截侦听代理,具有用于HTTP/1,HTTP/2和WebSockets的控制台界面。
  • mitmweb 是用于 mitmproxy 的基于 Web 的界面, 提供一个可视化界面帮助我们查看抓取的请求,可以修改返回内容。
  • mitmdump 它是mitmproxy的命令行接口,利用它我们可以对接Python脚本,用Python实现监听后的处理。

安装

Windows安装

pip install mitmproxy

Mac安装

brew install mitmproxy

或者跟windows 一样用pip安装

pip install mitmproxy

python 版本我用的 3.9.13 , 版本太低可能会出现不兼容问题。

安装完成后检查版本

mitmproxy --version

python 3.9 版本会安装 Mitmproxy: 9.x 版本

(venv) D:\demo\mitmproxy_xuexi>mitmproxy --version
Mitmproxy: 9.0.1
Python:    3.9.13
OpenSSL:   OpenSSL 3.0.7 1 Nov 2022
Platform:  Windows-10-10.0.17134-SP0

安装完成后会得到3个命令行工具:mitmproxy/ mitmweb/ mitmdump

除了用命令行安装,还可以用安装包安装,或者可以下载release文件 下载链接地址https://mitmproxy.org/downloads/#9.0.1/

mitmweb 基于 Web 的界面

先看第一个基于 Web 的界面命令行工具 mitmweb 的使用, 命令行启动服务

mitmweb

执行命令行后会看到启动成功

(venv) D:\demo\mitmproxy_xuexi>mitmweb
[11:59:49.361] HTTP(S) proxy listening at *:8080.
[11:59:49.363] Web server listening at http://127.0.0.1:8081/

mitmproxy 默认监听的端口是 8080 端口(fiddler 默认监听的是8888),可以加 -p 参数指定监听端口

(venv) D:\demo\mitmproxy_xuexi>mitmweb -p 8099
[12:02:44.095] HTTP(S) proxy listening at *:8099.
[12:02:44.097] Web server listening at http://127.0.0.1:8081/

浏览器默认端口的地址是http://127.0.0.1:8081/,显示如下

抓浏览器请求

mitmproxy 默认监听的端口是 8080 端口, 所以需要在浏览器上设置代理

开启代理,设置监听8080端口,点保存按钮

Mac 电脑端的配置

接下来浏览器访问一个http的请求,就可以捕获到了

打开百度https://www.baidu.com 页面是 https 请求,默认不会抓取

抓取https 请求

当打开一个https 请求时,页面上出现"您的连接不是私密连接"

mitmproxy 默认只抓取http的请求,https 的请求需要安装证书。

或者直接访问地址http://mitm.it/, 出现如下页面说明访问成功

如果出现的是下面这个页面, 说明服务没启动,或者没设置代理。

根据自己的电脑系统下载对应的证书,我的是windows系统,下载的文件是mitmproxy-ca-cert.p12

接下来,点对应系统证书文件右侧按钮,显示安装说明

windows 系统安装说明:

  • 1.双击下载的文件,开始导入证书

  • 2.选择一个证书文件存储位置(本地计算机),然后下一步

  • 3.输入密码界面,直接留空白,下一步

  • 4.选择“将所有证书放置在以下存储”,然后单击“浏览”,然后选择“受信任的根证书颁发机构”。下一步

  • 5.点完成

  • 6.导入成功点确定

以上证书安装完成后,重新访问百度页面就可以抓包成功了

那就意味着浏览器上的所有https 请求都可以抓到了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/93860.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

阿里云效产品【流水线Flow】企业项目代码一件发布各个云服务器

文章目录前言一、准备项目代码1.默认的项目2.浏览器访问二、使用步骤1.进入工作台2.创建流水线3.代码源4.代码扫描5.单元测试6.代码构建7.主机部署8.部署脚本三、运行测试1.运行流水线2.测试报告3.访问项目总结前言 「流水线」,又名「Flow」,是一款企业…

二、Qt定时器与文本编辑器制作《QT 入门到实战》

学习目标 了解 qt 的 pixmap了解 qt 的 label 如何显示图片了解定时器的开启了解定时器的关闭了解文件如何进行读取了解 QFileDialog 的使用了解了一个文本编辑器的基本编写巩固了 connect 的使用 一、制作一个图片浏览器 1.1 Pixmap 在 Qt 中使用 Label 可以显示文本&…

加密市场的「五维投资法」

一. 投资决策三要素 投资方法纷繁庞杂,但万变不离其宗,影响最终收益的因素,脱不开三个方面:胜率、赔率、仓位,通俗来说: 胜率:这一项投资,赢面有多大?有多大的把握盈利…

毕业设计-基于大数据招聘岗位可视化系统-python

目录 前言 课题背景和意义 实现技术思路 实现效果图样例 前言 📅大四是整个大学期间最忙碌的时光,一边要忙着备考或实习为毕业后面临的就业升学做准备,一边要为毕业设计耗费大量精力。近几年各个学校要求的毕设项目越来越难,有不少课题是研究生级别难度的,对本科…

【学习笔记】JDK源码学习之ArrayList(附带面试题)

【学习笔记】JDK源码学习之ArrayList(附带面试题) 引言: 什么是 ArrayList ?它和 List 又有什么关系?两者又有什么区别? 带着以上问题让我们来深入走进 ArrayList 。 1、ArrayList的使用 demo&#xf…

动态照片怎么制作?推荐几种操作简单的制作方法

动态照片应该怎么弄呢?不知道大家的家里有没有那种家庭相册,里面会有一些爷爷奶奶、爸爸妈妈们以前的照片,翻看这些照片的时候,就会想到那个时候的他们。不过相册里的照片基本上是一成不变的,有时候我会想,…

手写Spring6(实现应用上下文)

文章目录目标设计流程项目结构一、实现1、定义实例化前-BeanFactoryPostProcessor2、定义初始化前后-BeanPostProcessor3、定义上下文接口--ApplicationContext4、应用上下文抽象类实现--AbstractBeanFactory5、获取Bean工厂和加载资源--AbstractRefreshableApplicationContext…

webpack学习-cdn加速,使用 Tree Shaking,提取公共代码,分割代码按需加载 使用 Prepack开启 Scope Hoisting

4-9 CDN 加速 什么是 CDN 虽然前面通过了压缩代码的手段来减小网络传输大小,但实际上最影响用户体验的还是网页首次打开时的加载等待。 导致这个问题的根本是网络传输过程耗时大,CDN 的作用就是加速网络传输。 CDN 又叫内容分发网络,通过把资源部署到世界各地,用户在访问…

Mentor-dft 学习笔记 day43-Power-Aware DRC and ATPG

Power-Aware DRC and ATPG 本章介绍用于ATPG工具的power-aware DRC和ATPG流程。Power-Aware Overview 电子行业在设计连续体的主要方面采用了低功耗特性。EDA供应商和主要半导体公司定义了常用的电力数据标准格式来描述电力需求:UPF和CPF。Tessent Shell supports t…

Centos7迁移Anolis OS7系统

2020年12月08日CentOS官方宣布CentOS项目将停止,并推出CentOS Stream项目,详见公告 CentOS未来将会从 RedHat Enterprise Linux(RHEL) 复刻版本的 CentOS Linux 转向 CentOS Stream。 对处于生命周期中的 CentOS 版本后续影响: • CentOS Lin…

Codeforces Round #838 (Div. 2) A-C题解

cf比赛链接 目录 A. Divide and Conquer 题意: 思路: 代码: B. Make Array Good 题意: 思路: 代码: C. Binary Strings are Fun(什么疑惑题面) 题意:首先的两个…

PG::Sumo

nmap -Pn -p- -T4 --min-rate1000 192.168.170.87 nmap -Pn -p 22,80 -sCV 192.168.170.87 查看80端口的页面,没有什么有用的信息 尝试路径爆破,发现了/cgi-bin目录,就想到了HTB中的Shocker靶机。 继续爆破 wfuzz -c -z file,/usr/share/…

03. SQL注入漏洞基础

03. SQL注入漏洞基础 SQL注入漏洞基础(上) /01 SQL注入的原理 SQL注入原理 SQL注入产生的原因 当Web应用向后台数据库传递SQL语句进行数据库操作时。如果对用户输入的参数没有经过严格的过滤处理,那么攻击者就可以构造特殊的SQL语句&…

泓德基金:以超融合构建生产及灾备环境,承载 O32 等关键业务系统

案例亮点 承载 O32、TA、估值等基金行业关键业务系统生产与灾备环境。 POC 期间对超融合应用承载能力以及数据库支撑能力分别进行验证,性能与稳定性均满足需求。 超融合首先作为灾备资源池部署,稳定运行一年后,转为生产资源池,并…

高企认定没专利?专利评分低?如何评分?

众所周知,高企申报是一场“持久战”,申报知识产权、归集研发费用、科技成果转化等工作都需要一定的准备时间。其中,知识产权的获取所需要的时间是最长的(两年左右),对高新认定评分的影响也是最大的。因此,知识产权的研…

来聊一聊 ElasticSearch 最新版的 Java 客户端

可能不少小伙伴都注意到了,从 ElasticSearch7.17 这个版本开始,原先的 Java 高级客户端 Java High Level REST Client 废弃了,不支持了。老实说,ElasticSearch 算是我用过的所有 Java 工具中,更新最为激进的一个了&…

Unity中的Mask组件增加DrawCall的原因

Unity中的Mask组件增加DrawCall的原因 简介 常说mask组件不要常用,因为会增加drawcall,增加性能消耗;当然作为一个需要背八股文的同学而言,仅仅知道会增加性能消耗是不够的,所以这里简单看下其原理。 首先看下在Uni…

监控系列(三)自定义DM采集项(exporter)+主机监控+grafana展示

一、概括 本篇不涉及达梦数据库搭建,操作环境需提前准备prometheus以及grafana的搭建,请跳转到前文查看 监控系列(一)DM8PrometheusGrafana搭建 监控系列(二)Dem对接Prometheusgrafana显示 自定义的采集…

基于数字孪生技术的智慧变电站Web3D可视化系统

今天为大家分享一个采用 数维图 的 Sovit3D 构建轻量化 3D 可视化场景的案例——数字孪生智慧变电站三维可视化系统。多维度呈现变电站场景,实现变电站运行态势的实时监测,运维设备、控制系统和信息系统的互联互通。加强变电站设备的全状态感知力与控制力…

03-MySQL查询数据

目录 DQL语言 单表查询 AS子句 DISTINCT关键字的使用 WHERE条件语句 逻辑操作符 比较操作符 BETWEEN范围查询 LIKE模糊查询 使用IN进行范围查询 NULL空值条件查询 连接查询(多表查询) INNER JOIN内连接 等值和非等值的连接查询 外连接 JOIN对比…