百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

免费开源的交互式 HTTPS 代理Mitmproxy 最常用指令(备忘查询)

zhezhongyun 2024-12-28 16:45 85 浏览



使用

-p

mitmproxy -p 8001

在端口 8001 上启动代理

-m

mitmproxy -p 8001 -m reverse:http://127.0.0.1:4000

8001 端口反向代理到4000端口

-w

mitmproxy -p 8001 -w traffic.mitm

流到达时流向文件

-r

mitmproxy -r traffic.mitm

从文件中读取流

-C

mitmproxy -C traffic.mitm

从保存的文件重放客户端请求

-S

mitmproxy -S traffic.mitm

从保存的文件重放服务器响应

-s

mitmproxy -s myScript.py

执行脚本

-h

mitmproxy -h

mitmproxy 快速帮助

移动

        k                 Ctrl b
        ▲                   ▲▲
        │                   ││
h ? ─── + ─── ? l           ││ page
        │                   ││
        ▼                   ▼▼
        j             Ctrl f / Space 

h, j, k ,l

左、下、上、右

Ctrl b

向上翻页

Space / Ctrl f

向下翻页

g / G

转到开头/结尾

Arrows

上下左右

安装

  • mitmproxy 文档 (mitmproxy.org)
  • mitmproxy 开源仓库 (github.com)

$ brew install mitmproxy # macOS

代理模式

-R REVERSE_PROXY, --reverse REVERSE_PROXY

将所有请求转发到上游 HTTP 服务器:http[s]://host[:port]。客户端始终可以通过 HTTPS 和 HTTP 进行连接,与服务器的连接由指定的方案决定

--socks

设置 SOCKS5 代理模式

-T, --transparent

设置透明代理模式

-U UPSTREAM_PROXY, --upstream UPSTREAM_PROXY

将所有请求转发到上游代理服务器:http://host[:port]

流(视图)

A

恢复所有拦截的流

D

重复流

F

设置焦点跟随

L

从文件加载流

M

切换查看标记流

S

开始服务器回放

U

取消设置所有标记

V

还原对此流的更改

X

杀死这个流

Z

清除所有未显示的流

a

恢复此拦截流

b

将响应主体保存到文件

d

从视图中删除流

e

将此流导出到文件

f

设置视图过滤器

m

在此流程上切换标记

n

创建新流程

o

设置流列表顺序

r

重播此流程

v

反向流列表顺序

w

将列出的流程保存到文件

|

在此流上运行脚本

Ctrl l

将剪辑发送到剪贴板

常见的快捷键

q

返回/退出

z

清除流列表

:

命令提示符

E

查看事件日志

O

查看选项

r

重播此流程

Tab

下一个

Enter

选择

全局键绑定

-

循环到下一个布局

?

查看帮助

B

启动附加的浏览器

C

查看命令

I

切换拦截

K

查看按键绑定

P

查看流程详细信息

Q

立即退出

W

流式传输到文件

i

设置拦截

Ctrl right

聚焦下一个布局窗格

Shift tab

聚焦下一个布局窗格

代理选项

-b ADDR, --bind-address ADDR

将代理绑定到的地址(默认为所有接口)

-I HOST, --ignore HOST

忽略主机并转发所有流量而不对其进行处理。在透明模式下,建议使用 IP 地址(范围),而不是主机名。在常规模式下,仅忽略 SSL 流量并应使用主机名。提供的值被解释为正则表达式并匹配 ip 或主机名。可以多次通过

--tcp HOST

与模式匹配的所有主机的通用 TCP SSL 代理模式。类似于 --ignore,但 SSL 连接被拦截。通信内容以详细模式打印到日志中

-n, --no-server

不要启动代理服务器。用于离线分析以前捕获的流

-p PORT, --port PORT

代理服务端口。默认值:8080

--http2, --no-http2

显式启用/禁用 HTTP/2 支持。默认情况下禁用,直到主要网站正确实施规范。默认值将在未来版本中更改

--no-websocket, --websocket

显式启用/禁用 WebSocket 支持。默认启用

--raw-tcp, --no-raw-tcp

显式启用/禁用实验性原始 TCP 支持。默认情况下禁用。默认值将在未来版本中更改

--spoof-source-address

使用客户端的 IP 进行服务器端连接。与 –upstream-bind-address 结合使用以欺骗固定源地址

--upstream-bind-address UPSTREAM_BIND_ADDRESS

将上游请求绑定到的地址(默认为无)

Mitmproxy 过滤器

过滤器

f

设置视图过滤器 (在流视图页面上)


  • RegEX 备忘清单 (jaywcjlove.github.io)

正则表达式是 Python 风格的,可以指定为带引号的字符串

运算符

!

一元非

&

|

或者

(...)

分组

表达式

~a

响应匹配资源:CSS、Javascript、Flash、图像。

~b regex

主体 Body

~bq regex

请求正文

~bs regex

响应体

~c int

HTTP 响应代码

~d regex

~dst regex

匹配目标地址

~e

匹配错误

~h regex

标头

~hq regex

请求头

~hs regex

响应头

~http

匹配 HTTP 流

~m regex

方法

~marked

匹配标记流

~q

匹配请求无响应

~s

匹配响应

~src regex

匹配源地址

~t regex

内容类型标头

~tcp

匹配 TCP 流

~tq regex

请求 Content-Type 标头

~ts regex

响应内容类型标头

~u regex

网址

~websocket

匹配 WebSocket 流(和 HTTP-WebSocket 握手流)

流选择器

表达式

@all

所有流程

@focus

目前关注的流程

@shown

当前显示的所有流程

@hidden

当前隐藏的所有流程

@marked

所有标记流

@unmarked

所有未标记的流

mitmproxy 有一组方便的流选择器,可以在当前视图上操作

示例

包含“google.com”的网址

google\.com

正文中包含字符串“test”的请求

~q ~b test

除了带有 text/html 内容类型的请求之外的任何内容:

!(~q & ~t "text/html")

替换请求中的整个 GET 字符串(需要引号才能使其工作):

":~q ~m GET:.*:/replacement.html"

Mitmproxy 脚本

Custom response

from mitmproxy import http
def request(flow: http.HTTPFlow) -> None:
    if flow.request.pretty_url == "http://example.com/path":
        flow.response = http.HTTPResponse.make(
            200,  # (optional) status code
            b"Hello World",  # (optional) content
            {"Content-Type": "text/html"}  # (optional) headers
        )

从代理发送回复而不向远程服务器发送任何数据

Add header

class AddHeader:
    def __init__(self):
        self.num = 0
    def response(self, flow):
        self.num = self.num + 1
        flow.response.headers["count"] = str(self.num)
addons = [
    AddHeader()
]

为每个响应添加一个 HTTP 标头

mitmproxy 文档 mitmproxy.org

相关推荐

不看必后悔!15个三星GoodLock隐藏小技巧~(上)

很多刚用三星手机的星粉们,一定对三星GoodLock这个宝藏App还不是很了解,今天就带大家一起详细去看看GoodLock这个大家族究竟有多少宝藏功能及成员呢?让我们一起来看看吧~由于Good...

惊魂幻象理智值监控WA!大字体+范围提示一目了然

一个WA助你轻松监控大幻象理智值,不再错过恢复时机这个WA用大字体实时同步我们的理智值下面的图标提示恢复宝珠的剩余次数上面的图标高亮则意味着我们在宝珠的恢复范围内我们可以将图标随意移动到适合自己观察的...

盘点十个超炫的jQuery插件(jquery插件是干什么的)

“DevExpress14.2新版发布会”即将推出。心动不如行动,赶快报名吧!我们期待与您相约。今天小编为大家搜罗了十个超酷的jQuery插件,这可以使你的网站界面更加友好。jQuery创造了令人难...

Google官方梳理,Android 多返回栈技术详解

用户通过系统返回按钮导航回去的一组页面,在开发中被称为返回栈(backstack)。多返回栈即一堆"返回栈",对多返回栈的支持是在Navigation2.4.0-alpha0...

说三星手机系统不好用,因为没有玩明白三星,三星Diy功能超强大

都说三星手机系统不好用,其实真正用起来,挺好用的三星手机系统像块没打磨的玉,默认设置是基础款,用着普通。但你要是肯花点时间,它能变得特别顺手。关键就在一个叫GoodLock的工具,它是三星自家出的...

Sam Helper三星手机用户必装神器(三星手机必装app)

SamHelper这款软件集合了三星手机主题工具当前主题o主题路径o主题安装系统设置屏幕模式o状态栏o文件o频段o暗码Lock&LabsGoodLockoGalaxyLa...

外卖套餐搭配的探索和应用(外卖套餐搭配技巧)

本文系外卖美食知识图谱系列的第三篇文章,从技术层面我们会介绍外卖套餐搭配的技术方案,包括离线、实时的套餐搭配的迭代,套餐质量评估方案,同时会介绍套餐搭配的业务应用。1.背景让用户更方便快捷地选购到满...

用几行原生JS就可以实现丝滑的元素过渡效果

作者:ConardLi大家可以看下下面这个应用的页面切换体验,是不是很丝滑~做过体验优化的朋友应该都清楚,如果用原生的CSS或者JS动画去实现,想要实现出类似的效果,不会特别简单,而且也要考...

速腾车主RNS315固件及2016年6月地图升级详细教程

本来打算买个大众原厂的地图卡,后来在网上看其实不需要原厂地图卡也可以升级,于是开始在网上收集资料,开始天真的以为只要有密匙文件修改一下就可以免费升级了,其实最主要的还是破解的固件,不知道为什么,网上找...

学习一个母词act,一次解析一串关联、复合、衍生词族

首先形义解读一下act的原始意象,A是力量与行动的开始C是范围的覆盖T是目标目的的接触与刻度合在一起,行动行为艺术力量的复合行为以下是关于act的复合词、词根词缀衍生词及其变形后的词根衍生词的详细...

优迈系统(一体化控制柜)快车调试(八)

逻辑故障和驱动故障分析段码管上显示警告码和故障码对照表警告码操作模式故障码操作模式或驱动故障AL000EPC(紧急电源管制模式)ER100DTC(门在设定时间内不能关到位)AL001COR(复位模式)...

Layui简单实现左侧菜单和Tab选项卡动态操作

<!DOCTYPEhtml><html><head><metacharset="utf-8">...

码农如何快速打造一个有设计感的网站

像我这样的程序员来说经常被“设计”这个词吓到,因为我是一名程序员而不是设计师,我拥有的是计算机学位证,另外我对ComicSans字体并不介意。(注:ComicSans字体是Win95附带...

vue3 新特性 computed、watch、watchEffect 看完就会

1、watchEffectwatchEffect侦听器是一个副作用函数,不需要指定监听的某个属性,监视的回调中用到哪个属性,就会监听哪个属性,一旦运行就会立即执行。watchEffect与com...

10个冷门但非常实用前端开发者很少用的CSS规则

许多开发者只学了基础——比如修改颜色、设置字体或创建弹性布局——就止步不前。但CSS是一门精深而多用途的语言,掌握后能帮你构建优雅、高效且无障碍的界面。无论你是从零搭建还是微调设计系统,掌握一些高...