亚洲成A人片在线观看网站_成年网站免费视频A在线双飞_日日日日做夜夜夜夜无码_久久夜色撩人精品国产小说

Mitmproxy 備忘清單

是一個免費開源的交互式 HTTPS 代理。這是 mitmproxy 的快速參考備忘單。

入門

使用

選項范例描述
-pmitmproxy -p 8001在端口 8001 上啟動代理
-mmitmproxy -p 8001 -m reverse:8001 端口反向代理到4000端口
-wmitmproxy -p 8001 -w traffic.mitm流到達時流向文件
-rmitmproxy -r traffic.mitm從文件中讀取流
-Cmitmproxy -C traffic.mitm從保存的文件重放客戶端請求
-Smitmproxy -S traffic.mitm從保存的文件重放服務器響應
-smitmproxy -s myScript.py執行腳本
-hmitmproxy -hmitmproxy 快速幫助

移動

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

:------
h, j, k ,l左、下、上、右
Ctrl b向上翻頁
Space / Ctrl f向下翻頁
g / G轉到開頭/結尾
Arrows上下左右

安裝

  • (mitmproxy.org)
  • (github.com)

$ brew install mitmproxy # macOS

代理模式

ArgumentEffect
-R REVERSE_PROXY, --reverse REVERSE_PROXY將所有請求轉發到上游 HTTP 服務器:http[s]://host[:port]。客戶端始終可以通過 HTTPSHTTP 進行連接,與服務器的連接由指定的方案決定
--socks設置 SOCKS5 代理模式
-T, --transparent設置透明代理模式
-U UPSTREAM_PROXY, --upstream UPSTREAM_PROXY將所有請求轉發到上游代理服務器://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設置視圖過濾器 (在流視圖頁面上)

正則表達式是 Python 風格的,可以指定為帶引號的字符串

運算符

:------
!一元非
&
|或者
(...)分組

表達式

:------
~a響應匹配資源:CSS、Javascript、Flash、圖像。
~b regex主體 Body
~bq regex請求正文
~bs regex響應體
~c intHTTP 響應代碼
~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 == "//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 標頭

另見

  • (github.com)
  • (mitmproxy.org)
  • (github.com)
  • (stut-it.net)