mitmproxy代理
文章目录
- mitmproxy
- 1. 网络代理
- 2. 安装
- 3. Https请求
- 3.1 启动mitmproxy
- 3.2 获取证书
- 3.3 配置代理
- 3.4 运行测试
- 4. 请求
- 4.1 读取请求
- 4.2 修改请求
- 4.3 拦截请求
- 5. 响应
- 5.1 读取响应
- 5.2 修改响应
- 6. 案例:共享账号
- 6.1 登录bilibili获取cookies
- 6.2 在代理请求中设置cookies
mitmproxy
mitmproxy是一个代理工具(软件安装 或 Python模块安装),实现代理请求(拦截请求或修改请求)。
1. 网络代理
网络代理是一种位于客户端和服务器之间的中间服务器,它充当客户端与目标服务器之间的中间人。当客户端发送请求时,请求首先被发送到代理服务器,然后由代理服务器转发给目标服务器,并将目标服务器的响应返回给客户端。
代理服务器的作用可以有多种形式,包括:
- 隐藏真实的客户端IP地址:代理服务器可以屏蔽客户端的真实IP地址,使目标服务器无法直接获取到客户端的真实位置信息。这种方式可以提供一定的匿名性和隐私保护。
- 缓存和加速:代理服务器可以缓存目标服务器的响应,当其他客户端请求相同的资源时,代理服务器可以直接返回缓存的响应,减少了对目标服务器的访问,提高了访问速度和网络效率。
- 过滤和访问控制:代理服务器可以根据设置的规则对请求进行过滤和访问控制。例如,可以通过代理服务器实现对特定网站或内容的屏蔽,或者对特定客户端的访问进行限制。
- 突破网络限制:在某些情况下,代理服务器可以用于突破网络限制。例如,当访问某些网站受到地理位置限制或网络审查时,可以通过使用代理服务器来绕过这些限制。
- 负载均衡:代理服务器可以作为负载均衡器,将请求分发到多个目标服务器上,以实现更好的性能和可靠性。
mitmproxy是一款流行的开源代理工具,用于拦截、修改和观察网络流量。它可以用于网络安全测试、调试和逆向工程等场景。

2. 安装
在安装前需要去下载Visual C++ Build Tools for Visual Studio 2015安装到电脑。
https://my.visualstudio.com/Downloads?q=Visual%20Studio%202015%20update%203

解压 mu_visual_cpp_build_tools_2015_update_3_x64_dvd_dfd9a39c.iso文件,然后默认安装。
用pip安装mitmproxy:
pip install mitmproxy
3. Https请求
如果想要让mitmproxy支持:http和https请求,就需要安装证书。
3.1 启动mitmproxy
>>>mitmdump -q -p 8888 -s test.py

from mitmproxy import httpdef request(flow: http.HTTPFlow):print("请求->", flow.request.url)def response(flow: http.HTTPFlow):...
3.2 获取证书
在电脑
C:\Users\Administrator\.mitmproxy中去获取。

双击下载证书



3.3 配置代理

3.4 运行测试

4. 请求
4.1 读取请求
from mitmproxy import http
from mitmproxy.http import Requestdef request(flow):print("请求-->", flow.request.url)print("请求-->", flow.request.host)print("请求-->", flow.request.path)print("请求-->", flow.request.query)print("请求-->", flow.request.cookies)print("请求-->", flow.request.headers)print("请求-->", flow.request.method)print("请求-->", flow.request.content)def response(flow: http.HTTPFlow):pass
4.2 修改请求
from mitmproxy import httpdef request(flow):flow.request.url = "https://www.baidu.com/"def response(flow: http.HTTPFlow):pass

4.3 拦截请求
可以拦截请求,并放回指定内容
from mitmproxy import http
from mitmproxy.http import HTTPFlow
from mitmproxy.http import Responsedef request(flow: HTTPFlow):if flow.request.url.startswith("https://dig.chouti.com/"):flow.response = Response.make(200, # (optional) status codeb"Hello World", # (optional) content{"Content-Type": "text/html"} # (optional) headers)def response(flow: http.HTTPFlow):pass

也可以直接kill请求
from mitmproxy import http
from mitmproxy.http import Request
from mitmproxy.http import HTTPFlowdef request(flow: HTTPFlow):if flow.request.url.startswith("https://dig.chouti.com/"):flow.kill()def response(flow: http.HTTPFlow):pass
5. 响应
5.1 读取响应
from mitmproxy import http
from mitmproxy.http import HTTPFlowdef request(flow: HTTPFlow):...def response(flow: http.HTTPFlow):print(flow.request.url)print(flow.response.status_code)print(flow.response.cookies)print(flow.response.headers)print(flow.response.content)
5.2 修改响应
from mitmproxy import http
from mitmproxy.http import HTTPFlow, Responsedef request(flow: HTTPFlow):...def response(flow: http.HTTPFlow):flow.response = Response.make(200, # (optional) status codeb"Hello World", # (optional) content{"Content-Type": "text/html"} # (optional) headers)

6. 案例:共享账号
6.1 登录bilibili获取cookies
from mitmproxy import http
from mitmproxy.http import HTTPFlowdef request(flow: HTTPFlow):print(flow.request.url)print(flow.request.cookies)def response(flow: http.HTTPFlow):...

6.2 在代理请求中设置cookies
from mitmproxy import http
from mitmproxy.http import HTTPFlowdef request(flow: HTTPFlow):print(flow.request.url)print(flow.request.cookies)flow.request.cookies = [['_uuid', 'A98A10A1C-9F33-6339-17E4-CD8671029FB5A86227infoc'],['buvid3', '6F2EA161-81E8-FC5D-692F-FF62C048B83B86528infoc'], ['b_nut', '1709354487'],['buvid4','FDE22D0E-55C2-7A05-BE12-D69A19F71C7586528-024030204-nzup34dDLssl%2BNgRMbI%2BUQ%3D%3D'],['enable_web_push', 'DISABLE'], ['FEED_LIVE_VERSION', 'V8'],['header_theme_version', 'CLOSE'], ['CURRENT_FNVAL', '4048'],['rpdid', "|(~|mm|k)~l0J'u~|mJlRl|m"], ['b_lsid', '6FDF9248_18DFEAFE967'],['home_feed_column', '5'], ['browser_resolution', '1536-239'], ['bili_ticket','eyJhbGciOiJIUzI1NiIsImtpZCI6InMwMyIsInR5cCI6IkpXVCJ9.eyJleHAiOjE3MDk2MzcwNzEsImlhdCI6MTcwOTM3NzgxMSwicGx0IjotMX0.qxpceIj8gLlNQ33eR9d5jxfizfYD_AWX_zpvHAFixY4'],['bili_ticket_expires', '1709637011'], ['bp_video_offset_250595597', '904259047290568723'],['fingerprint', 'bc08d5f7f0d84ff74bf64c3b8cead4fc'], ['buvid_fp_plain', 'undefined'],['buvid_fp', 'bc08d5f7f0d84ff74bf64c3b8cead4fc'], ['SESSDATA','e3f51de8%2C1724929938%2Cb3219%2A32CjDQyE1hfakSZT7vrNGmyYTP3Es7buyebKSAFmqg5JIZOH4RfRvNZRNydfq3JlRMLlcSVjd4SE0xc2I5T0dtVXFMMzBLbnhXZW5QNTNyeUZLVjNteDVaRUZ4V1FSQ2gwSXBCb09NLVFzc2cyRmpsNkJPOE9jVE9xdGlIS3gwZHlQWTJaX182SkZnIIEC'],['bili_jct', 'a74e7345a811680a745797300a7ae525'], ['DedeUserID', '250595597'],['DedeUserID__ckMd5', 'dd8e5953de09a630'], ['sid', 'qmre1dgw']]def response(flow: http.HTTPFlow):...
在配置完cookies后在被代理的电脑打开bilibili会显示为登录状态

若多台电脑接入代理则可以共享这个账号
相关文章:
mitmproxy代理
文章目录 mitmproxy1. 网络代理2. 安装3. Https请求3.1 启动mitmproxy3.2 获取证书3.3 配置代理3.4 运行测试 4. 请求4.1 读取请求4.2 修改请求4.3 拦截请求 5. 响应5.1 读取响应5.2 修改响应 6. 案例:共享账号6.1 登录bilibili获取cookies6.2 在代理请求中设置cook…...
【GPU驱动开发】- mesa编译与链接过程详细分析
前言 不必害怕未知,无需恐惧犯错,做一个Creator! 一、总体框架图 暂时无法在飞书文档外展示此内容 二、Mesa API 处理 OpenGL 函数调用 Mesa API 负责实现 OpenGL 和其他图形 API 的函数接口。Mesa API 表是一个重要的数据结构…...
如何恢复已删除的华为手机图片?5 种方式分享
不幸的现实是,华为的珍贵时刻有时会因为意外删除、软件故障或其他不可预见的情况而在眨眼之间消失。在这种情况下,寻求恢复已删除的图片成为个人迫切关心的问题。 本文旨在为用户提供如何从华为恢复已删除图片的实用解决方案。我们将探索五种可行的方法…...
通过 python 和 wget 批量下载文件(在Linux/Ubuntu/Debian中测试)
首先创建一个文本文件d.txt, 一行一个链接。 你可以使用简单的 Python 脚本逐行读取文件 (d.txt) 中的链接,并使用 wget 下载文件: import subprocess# File containing download links (replace with your file path) file_path d.txt# Function to …...
个人博客系列-后端项目-RBAC角色管理(6)
设计用户表 ## 用户表 class User(models.Model):username models.CharField(max_length255, uniqueTrue, verbose_name"手机号")password models.CharField(max_length255, uniqueFalse, verbose_name"密码")is_vip models.BooleanField(defaultFalse…...
机器学习-启航
文章目录 原理分析机器学习的两种典型任务机器学习分类总结数据机器学习分类解读简单复杂 原理分析 马克思主义哲学-规律篇 规律客观存在,万事万物皆有规律。 机器学习则是多维角度拆解分析复杂事实数据,发现复杂事实背后的规律,然后将规律用…...
驱动调试第014期-变频调速的原理及相关计算公式应用
一、引言 变频调速是一种通过改变电源频率来实现电动机调速的技术。它具有高效、精确、可靠等优点,广泛应用于工业、商业和家用领域。本文将介绍变频调速的基本原理、优点以及应用领域,并通过详细的公式计算过程和图片说明来帮助读者更好地理解。 二、变…...
JavaWeb环境配置 IDE2022版
一、新建一个javaweb文件 文件名可以自己随意改 二、给建立的项目添加框架支持 勾选Web Application,点击确定 建立成功界面,会生成一个新的web文件夹 三、配置tomcat 1、两种打开配置文件方式: 第一种 第二种 2、打开后,点击号…...
Matlab偏微分方程拟合 | 完整源码 | 视频教程
专栏导读 作者简介:工学博士,高级工程师,专注于工业软件算法研究本文已收录于专栏:《复杂函数拟合案例分享》本专栏旨在提供 1.以案例的形式讲解各类复杂函数拟合的程序实现方法,并提供所有案例完整源码;2.…...
什么是yocto基本组件(bitbake,recipes,classes,configuration,layer)
文章目录 1基本组件1.1 bitbake1.2 Recipes1.3 Classes1.4 Configurations2 层的理解2.1 层结构2.2 nxp yocto示例2.3 ti yocto示例1基本组件 1.1 bitbake bitbake,是OpenEmbedded构建系统的核心工具,负责解析元数据,从中生成任务列表,然后执行这些任务。bitbake是一个通…...
electron 程序与安装包图标放大与制作
原因 electron-builder 在打包时需要最小支持到256x256像素的icon图标。原有历史图标都太小了。需要尝试将图标放大。 工具 convertio.co/zh/ico-png/ 在线ico转png网站 https://github.com/upscayl/upscayl 图片放大工具 csdn下载 greenfish-icon-editor-pro.en.softonic.c…...
nginx,php-fpm
一,Nginx是异步非阻塞多进程,io多路复用 1、master进程:管理进程 master进程主要用来管理worker进程,具体包括如下4个主要功能: (1)接收来自外界的信号。 (2)向各worker进…...
网络编程(3/4)
广播 #include<myhead.h>int main(int argc, const char *argv[]) {//1、创建套接字int sfd socket(AF_INET, SOCK_DGRAM, 0);if(sfd -1){perror("socket error");return -1;}//2、将套接字设置成允许广播int broadcast 1;if(setsockopt(sfd, SOL_SOC…...
vue computed计算属性
模板中的表达式虽然方便,但也只能用来做简单的操作;如果在模板中写太多逻辑,会让模板变得臃肿,难以维护;因此我们推荐使用计算属性来描述依赖响应式状态的复杂逻辑 1. 选项式 API 中,可以提供computed选项来…...
智慧路灯物联网管理平台及应用
资产维护 路灯物联网涉及的设备数量大,种类多,生产厂家和批次多样化,对路灯物联网的资产维护是一项艰巨的工作。资产维护管理能够有效的管理路灯资产及各类传感设备资产信息,实现精细化管理。平台提供了对集中控制器、各感测设备节点控制器等设备的信息进行管理,包括录入…...
基于OpenCV的图形分析辨认02
目录 一、前言 二、实验目的 三、实验内容 四、实验过程 一、前言 编程语言:Python,编程软件:vscode或pycharm,必备的第三方库:OpenCV,numpy,matplotlib,os等等。 关于OpenCV&…...
python基础——基础语法
文章目录 一、基础知识1、字面量2、常用值类型3、注释4、输入输出5、数据类型转换6、其他 二、字符串拓展1、字符串定义2、字符串拼接3、字符串格式化4、格式化精度控制 三、条件/循环语句1、if2、while3、for循环 四、函数1、函数定义2、函数说明文档3、global关键字 五、数据…...
vue3 vue-i18n 多语言
1. 安装 npm install vue-i18n -s 2. 引入main.js import { createI18n } from vue-i18n import messages from ./i18n/index const i18n createI18n({legacy: false,locale: Cookies.get(language) || en_us, // set localefallbackLocale: en_us, // set fallback local…...
二级水平导航菜单栏的实现
1. 这个是本人设计的一带一路的二级水平导航栏HTML代码; 这里最后实现的效果是鼠标悬停在导航栏上面,就会显示下面的4个部分页面,这里只是以评论热 点作为例子,其他的类似; 2.首先要设计DIV,然后利用无…...
在GitLab Python库中,mr.changes()和mr.diffs()的区别
在GitLab Python库中,mr.changes()和mr.diffs()都用于获取合并请求(Merge Request)中的文件更改信息,但它们之间有一些区别: mr.changes(): mr.changes() 方法返回合并请求中所有文件的更改信息。返回的结果…...
[2025CVPR]DeepVideo-R1:基于难度感知回归GRPO的视频强化微调框架详解
突破视频大语言模型推理瓶颈,在多个视频基准上实现SOTA性能 一、核心问题与创新亮点 1.1 GRPO在视频任务中的两大挑战 安全措施依赖问题 GRPO使用min和clip函数限制策略更新幅度,导致: 梯度抑制:当新旧策略差异过大时梯度消失收敛困难:策略无法充分优化# 传统GRPO的梯…...
Qt Http Server模块功能及架构
Qt Http Server 是 Qt 6.0 中引入的一个新模块,它提供了一个轻量级的 HTTP 服务器实现,主要用于构建基于 HTTP 的应用程序和服务。 功能介绍: 主要功能 HTTP服务器功能: 支持 HTTP/1.1 协议 简单的请求/响应处理模型 支持 GET…...
NFT模式:数字资产确权与链游经济系统构建
NFT模式:数字资产确权与链游经济系统构建 ——从技术架构到可持续生态的范式革命 一、确权技术革新:构建可信数字资产基石 1. 区块链底层架构的进化 跨链互操作协议:基于LayerZero协议实现以太坊、Solana等公链资产互通,通过零知…...
Android Bitmap治理全解析:从加载优化到泄漏防控的全生命周期管理
引言 Bitmap(位图)是Android应用内存占用的“头号杀手”。一张1080P(1920x1080)的图片以ARGB_8888格式加载时,内存占用高达8MB(192010804字节)。据统计,超过60%的应用OOM崩溃与Bitm…...
【p2p、分布式,区块链笔记 MESH】Bluetooth蓝牙通信 BLE Mesh协议的拓扑结构 定向转发机制
目录 节点的功能承载层(GATT/Adv)局限性: 拓扑关系定向转发机制定向转发意义 CG 节点的功能 节点的功能由节点支持的特性和功能决定。所有节点都能够发送和接收网格消息。节点还可以选择支持一个或多个附加功能,如 Configuration …...
Python竞赛环境搭建全攻略
Python环境搭建竞赛技术文章大纲 竞赛背景与意义 竞赛的目的与价值Python在竞赛中的应用场景环境搭建对竞赛效率的影响 竞赛环境需求分析 常见竞赛类型(算法、数据分析、机器学习等)不同竞赛对Python版本及库的要求硬件与操作系统的兼容性问题 Pyth…...
QT开发技术【ffmpeg + QAudioOutput】音乐播放器
一、 介绍 使用ffmpeg 4.2.2 在数字化浪潮席卷全球的当下,音视频内容犹如璀璨繁星,点亮了人们的生活与工作。从短视频平台上令人捧腹的搞笑视频,到在线课堂中知识渊博的专家授课,再到影视平台上扣人心弦的高清大片,音…...
HTML中各种标签的作用
一、HTML文件主要标签结构及说明 1. <!DOCTYPE html> 作用:声明文档类型,告知浏览器这是 HTML5 文档。 必须:是。 2. <html lang“zh”>. </html> 作用:包裹整个网页内容,lang"z…...
Linux【5】-----编译和烧写Linux系统镜像(RK3568)
参考:讯为 1、文件系统 不同的文件系统组成了:debian、ubuntu、buildroot、qt等系统 每个文件系统的uboot和kernel是一样的 2、源码目录介绍 目录 3、正式编译 编译脚本build.sh 帮助内容如下: Available options: uboot …...
边缘计算设备全解析:边缘盒子在各大行业的落地应用场景
随着工业物联网、AI、5G的发展,数据量呈爆炸式增长。但你有没有想过,我们生成的数据,真的都要发回云端处理吗?其实不一定。特别是在一些对响应时间、网络带宽、数据隐私要求高的行业里,边缘计算开始“火”了起来&#…...
