mitmproxy抓包

news/2024/10/19 1:34:51/

0.mitmproxy功能简介

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

1. 安装mitmproxy

pip3 install mitmproxy➜  mitmproxy pip3 show mitmproxy
Name: mitmproxy
Version: 9.0.1
Summary: An interactive, SSL/TLS-capable intercepting proxy for HTTP/1, HTTP/2, and WebSockets.
Home-page: http://mitmproxy.org
Author: Aldo Cortesi
Author-email: aldo@corte.si
License: MIT
Location: /Users/apus/Library/Python/3.9/lib/python/site-packages
Requires: certifi, pyOpenSSL, protobuf, mitmproxy-wireguard, hyperframe, publicsuffix2, wsproto, urwid, h2, h11, asgiref, msgpack, kaitaistruct, pyparsing, typing-extensions, tornado, cryptography, Brotli, pyperclip, flask, sortedcontainers, ldap3, ruamel.yaml, zstandard, passlib
Required-by: brew install mitmproxy

2.核心组件简介

在这里插入图片描述

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

  2. mitmweb
    在这里插入图片描述
    mitmweb 是 mitmproxy 的基于 Web 的用户界面,允许交互式检查和修改 HTTP 流量。与 mitmproxy 一样,所有流都保存在内存

  3. mitmdump

1. 保存流量包
# 开启代理监听模式(默认8080端口),并将抓到的所有包保存到 outfile
mitmdump -w outfile2. 过滤并保存流量
mitmdump -nr infile -w outfile "~m post"
启动 mitmdump 在不绑定代理端口(-n)的情况下,从 infile 读取所有流,并按指定的表达式(仅匹配 POST)过滤后,写入 outfile。3. 客户端重放
mitmdump -nC outfile
启动 mitmdump 在不绑定到代理端口 (-n)的情况下,然后重放来自 outfile (-C 文件名) 的所有请求。
显然,你也可以重放一个文件(srcfile),并将其写入另一个文件(dstfile):
mitmdump -nC srcfile -w dstfile
https://docs.mitmproxy.org/stable/overview-features/#client-side-replay4. 执行脚本
mitmdump -s examples/simple/add_header.py
运行 add_header.py 官方示例脚本,该脚本是为所有 response 添加一个新标头。5. 数据转换
mitmdump -ns examples/simple/add_header.py -r srcfile -w dstfile
此命令从 srcfile 加载流,根据指定的脚本对其进行转换,然后将其写回 dstfile。

3. 安装SSL证书

mitmproxy 作为一个常规的http代理服务器使用时,默认监听 http://localhost:8080
手机浏览器输入网址http://mitm.it下载证书
在这里插入图片描述
如果显示如下,则说明代理没有成功

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

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

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

android12 安装https抓包证书

使用magisk+lsposed+MagiskTrustUserCerts
下面资料有安装magisk的方法
安装完成后,直接按照普通的安装即可
步骤: 设置->安全->加密与凭据->安装证书->CA证书 找到抓包证书后即可安装

资料

【mitmproxy】一、简介与快速上手
https://blog.csdn.net/wanzheng_96/article/details/126964292
最新 SwitchyOmega 使用教程快速入门篇
https://switchyomega.org/
FelisCatus/SwitchyOmega
https://github.com/FelisCatus/SwitchyOmega/releases
mitmproxy使用详解
https://blog.csdn.net/shifengboy/article/details/114067212
Mitmproxy代理设置和证书安装
http://e.betheme.net/article/show-397619.aspx
mitmproxy抓取https请求实践
https://blog.csdn.net/swordgirl2011/article/details/53976394/
mitmproxy 安装,使用,抓取 HTTPS,以及python脚本编写
https://blog.csdn.net/Defiler_Lee/article/details/109395619
参考资料:
1.https://mitmproxy.org/doc/mitmproxy.html
2.http://www.tuicool.com/articles/EVV3Qza
Android 7.0 之后抓包 unknown 和证书无效的解决方案(无需改代码)
https://blog.csdn.net/ShadowySpirits/article/details/79756274
安卓手机mitmproxy抓包
https://blog.csdn.net/m0_57468722/article/details/127852867
android system目录只读权限的修改。
https://blog.csdn.net/challenge51all/article/details/83014884
安卓高版本安装系统证书 HTTPS 抓包 - 终极解决方案
https://cloud.tencent.com/developer/article/2235636
记一次红米 K30(Android 12)BL 解锁、Root、LSPosed 安装、SSL 证书安装抓包环境配置过程
https://zhuanlan.zhihu.com/p/515752309
magisk安装与配置
https://zhaojian.blog.csdn.net/article/details/128341043
NVISOsecurity/MagiskTrustUserCerts
LSPosed/LSPosed
Client TLS handshake failed
mitmproxy教程(转载)


http://www.ppmy.cn/news/53681.html

相关文章

还在玩传统终端,不妨来试试全新 AI 终端 Warp

壹 ❀ 引 最近一段时间,AI领域如同雨后春笋般开始猛烈生长,processon,sentry,一些日常使用的工具都在积极接入AI,那么正好借着AI的风头,今天给大家推荐一款非常不错的智能终端 warp(目前仅限ma…

外卖项目优化-01-redis缓存短信验证码、菜品数据

文章目录 外卖项目优化-01课程内容前言1. 环境搭建1.1 版本控制解决branch和tag命名冲突 1.2 环境准备 2. 缓存短信验证码2.1 思路分析2.2 代码改造2.3 功能测试 3. 缓存菜品信息3.1 实现思路3.2 代码改造3.2.1 查询菜品缓存3.2.2 清理菜品缓存 3.3 功能测试3.4 提交并推送代码…

Springboot +Flowable,设置任务处理人的四种方式(一)

一.简介 学习下UserTask 设置用户的三种方式,至于如何设置用户组,下篇文章再聊。 现在,假设我有如下一个简单的流程图: 那么该如何设置这个用户节点的处理人? 二.第一种:指定具体用户 第一种方式&…

QT6之类实例化——对象指针和对象

Qt完全遵循C 中类的实例化动作按存储位置可以分为栈中分配内存和堆中分配内存两种,分别对应不用 new 实例化类和用 new 实例化类。 一、实例化两种方式 1、栈中分配; 如下图是qt非常常见的操作,将m_view声明为对象,它完全表明该…

探索TCP状态机之旅:发现网络连接的生命周期与神秘魅力

目录标题 前言TCP状态简介TCP状态机的目的与功能TCP状态在连接建立、数据传输和连接关闭过程中的作用 TCP状态详解LISTEN:服务器监听来自客户端的连接请求。SYN\_SENT:客户端发送SYN,等待服务器确认。SYN\_RECV:服务器收到SYN&…

差分、微分、变分

差分: yf(x)中自变量为x,因变量为y。 自变量差分: Δ x \Delta x Δx 因变量差分: Δ y f ( x ) − f ( x Δ x ) \Delta yf(x)-f(x\Delta x) Δyf(x)−f(xΔx) 微分: yf(x)中自变量为x,因变量为y。 自变量微分&a…

【线程同步】

一个大佬的笔记,比较详细 一、线程概述 1.线程概述 与进程(process)类似,线程(thread)是允许应用程序并发执行多个任务的一种机 制。一个进程可以包含多个线程。同一个程序中的所有线程均会独立执行相同…

升级gpt4-GPT最新版本怎么下载使用

怎么 让gpt-3的模型升级gpt4 GPT-4是OpenAI的未来版本,目前还未发布。因此,我们无法准确指导如何将GPT-3升级到GPT-4。要升级GPT-3,需要进行大量的研究和开发工作。如果OpenAI发行了GPT-4的预览版,那么可能需要花费大量的时间和资…