成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

從零開始學(xué) Mitmproxy 抓包工具

開發(fā) 開發(fā)工具
mitm是Man In The Middle的首字母縮寫,意思是位于中間的人,表明mitmproxy是一個代理,可以攔截請求,實現(xiàn)網(wǎng)絡(luò)抓包。

本文轉(zhuǎn)載自微信公眾號「測試開發(fā)剛哥」,作者dongfanger 。轉(zhuǎn)載本文請聯(lián)系測試開發(fā)剛哥公眾號。

Man In The Middle

mitm是Man In The Middle的首字母縮寫,意思是位于中間的人,表明mitmproxy是一個代理,可以攔截請求,實現(xiàn)網(wǎng)絡(luò)抓包。知名的網(wǎng)絡(luò)抓包工具有Fiddler、Charles、HttpWatch、WireShark、BurpSuite和Postman等,mitmproxy相對來說,沒有這么高的知名度,它相比于以上工具的獨特優(yōu)勢是,它提供了Python API,可以編寫Python代碼對網(wǎng)絡(luò)請求進(jìn)行流量錄制,從而收集接口信息以及轉(zhuǎn)化為接口自動化用例等。mitmproxy官方文檔不但有mitmproxy工具使用介紹,還有代理實現(xiàn)原理,對我們學(xué)習(xí)掌握網(wǎng)絡(luò)知識有很大幫助。

安裝與使用

pip安裝

pip install mitmproxy

mitmproxy是Python開發(fā)的,用pip就能安裝成功。官方給出了二進(jìn)制安裝包等方法,我覺得作為一款用Python開發(fā)的工具,用pip直接安裝是更Pythonic的。

命令啟動

可以通過3種命令啟動mitmproxy:

  • mitmproxy 控制臺

  • mitmweb 網(wǎng)頁

  • mitmdump 命令行

它們的內(nèi)容都是一樣的,只是UI不一樣而已。

手動設(shè)置代理

打開以后mitmproxy默認(rèn)會監(jiān)聽http://localhost:8080,需要設(shè)置下代理,把代理服務(wù)器設(shè)置為這個地址。

Windows可以這樣設(shè)置:

設(shè)置后一定要記得點擊保存按鈕,否則代理不會生效。

實際上,Charles等網(wǎng)絡(luò)抓包工具會自動配置代理,而mitmproxy需要手動設(shè)置代理,開發(fā)團隊的解釋是因為瀏覽器版本和配置經(jīng)常會變化,所以他們建議在網(wǎng)上根據(jù)環(huán)境搜索方法手動設(shè)置。

下載證書

訪問http://mitm.it/,如果代理配置沒有生效,打開后會是這個界面:

正常的話,會出現(xiàn)證書下載頁面:

根據(jù)平臺選擇相應(yīng)證書安裝就OK了。

使用

mitmproxy更其他抓包工具用法類似。

官方用視頻演示了mitmproxy如何使用:

??https://docs.mitmproxy.org/stable/mitmproxytutorial-userinterface/??

并且介紹了5種運行模式:

??https://docs.mitmproxy.org/stable/concepts-modes/??

讀者可以自行閱讀下。

mitmproxy工作原理

  • 客戶端(本機)連接代理服務(wù)器(http://127.0.0.1:8080),代理服務(wù)器連接服務(wù)器。
  • 客戶端給代理服務(wù)器發(fā)請求,代理服務(wù)器把請求發(fā)送到服務(wù)器。

所有請求經(jīng)過mitmproxy,就可以實現(xiàn)請求攔截。

對于HTTP來說,直接借助mitmproxy傳遞請求就可以。而對于HTTPS來說,有個SSL/TLS安全認(rèn)證,必須安裝證書,服務(wù)器才會認(rèn)為mitmproxy的請求是可信任的,請求才會成功傳遞。

HTTPS的代理過程就要復(fù)雜很多,客戶端先跟mitmproxy建立連接(12步),然后進(jìn)行安全認(rèn)證(36步),最后傳遞請求(7~8步)。

反向代理

假設(shè)在本機使用FastAPI啟動了個Mock服務(wù),地址為http://127.0.0.1:5000,通過Postman調(diào)接口,怎么使用mitmproxy來攔截請求呢?這就需要用到反向代理。

首先以反向代理模式運行mitmproxy,服務(wù)器端口為5000,監(jiān)聽端口為8000:

mitmproxy --mode reverse:http://127.0.0.1:5000 --listen-host 127.0.0.1 --listen-port 8000

然后把請求http://127.0.0.1:5000/login里面的5000端口改成8000,訪問:

??http://127.0.0.1:8000/login??

就能在mitmproxy看到抓到請求了:

這樣就能在本地使用Mock服務(wù)來調(diào)試攔截請求的Python代碼了。

反向代理,不需要在本機手動設(shè)置代理。

Python API

Python API是mitmproxy的特色功能:

能夠在Python代碼中對攔截的請求進(jìn)行處理。

addons提供了很多hook函數(shù),比如request:

"""
Basic skeleton of a mitmproxy addon.

Run as follows: mitmproxy -s anatomy.py
"""
from mitmproxy import ctx


class Counter:
def __init__(self):
self.num = 0

def request(self, flow):
self.num = self.num + 1
ctx.log.info("We've seen %d flows" % self.num)


addons = [
Counter()
]

response:

"""Add an HTTP header to each response."""


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()
]

啟動時加上-s參數(shù)指定腳本:

mitmdump -s ./anatomy.py

代碼就會在請求攔截時生效了。

更多hook函數(shù)請參考官方說明:

??https://docs.mitmproxy.org/stable/api/events.html??

這里就不再詳細(xì)說明了。

而關(guān)于如何使用mitmproxy錄制流量自動生成自動化用例的部分,我會開發(fā)完成后集成到tep新版本中,屆時再做介紹,敬請期待。

參考資料:

mitmproxy官方文檔 https://docs.mitmproxy.org/stable/


責(zé)任編輯:武曉燕 來源: 測試開發(fā)剛哥
相關(guān)推薦

2024-08-01 11:21:52

2024-12-09 09:44:34

機器學(xué)習(xí)模型分類器

2015-08-26 10:01:20

iOS開發(fā)

2015-08-24 14:59:06

Java線程

2024-07-30 09:22:44

PostgreSQL數(shù)據(jù)庫工具

2023-02-20 09:55:00

微服務(wù)框架單體架構(gòu)

2015-11-17 16:11:07

Code Review

2019-01-18 12:39:45

云計算PaaS公有云

2018-04-18 07:01:59

Docker容器虛擬機

2024-12-06 17:02:26

2020-07-02 15:32:23

Kubernetes容器架構(gòu)

2015-03-06 17:24:56

Android應(yīng)用安全安卓應(yīng)用安全

2023-06-02 07:37:12

LLM?大語言模型

2010-05-26 17:35:08

配置Xcode SVN

2018-09-14 17:16:22

云計算軟件計算機網(wǎng)絡(luò)

2024-05-15 14:29:45

2021-01-08 10:24:32

Python項目基礎(chǔ)

2023-06-09 07:34:16

Java提示詞組件

2023-12-05 13:10:00

ReflexPython

2023-10-27 11:01:31

網(wǎng)絡(luò)性能VLAN
點贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 久久久噜噜噜www成人网 | 成人在线免费视频 | 四虎影视免费观看 | 天堂成人av | 日韩精品久久一区 | 成人在线精品视频 | 成人亚洲性情网站www在线观看 | 国产人久久人人人人爽 | 亚洲精品一区二区在线观看 | 久久久久久久久毛片 | 成人国产精品入口免费视频 | 亚洲精品久久嫩草网站秘色 | 一区二区日韩精品 | 久久夜夜| 亚洲人在线 | 久久这里只有精品首页 | 一级片免费视频 | 亚洲免费视频在线观看 | 国产羞羞视频在线观看 | 久久草视频 | 欧美一级淫片免费视频黄 | .国产精品成人自产拍在线观看6 | 久久精彩视频 | 久久亚 | 俺去俺来也www色官网cms | 亚洲一二三区在线观看 | 亚洲风情在线观看 | 久久激情网 | 日韩欧美精品在线 | 麻豆精品一区二区三区在线观看 | 91动漫在线观看 | 日韩视频一区二区 | 久久精品免费 | 亚洲综合色站 | 日一区二区 | 成人av高清 | 久久综合一区 | 日韩精品一区二区三区在线观看 | 99久久精品一区二区成人 | 精品一区久久 | 久久91av |