詳解安裝mitmproxy以及遇到的坑和簡單用法
mitmproxy 是一款工具,也可以說是 python 的一個包,在命令行操作的工具。
MITM 即中間人攻擊(Man-in-the-middle attack)

使用這個工具可以在命令行上進(jìn)行抓包,還可以對所抓到的包進(jìn)行腳本處理,非常有用。
安裝 mitmproxy
安裝這個我們必須先安裝了 pip。 pip 在安裝了 python之后自帶的,如果你安裝了 python 就可以忽略了,如何安裝這里就不說了,只說安裝 mitmproxy
打開命令行,輸入 pip install mitmproxy 即可

按下回車即可下載
但是到最后下載失敗
error: Microsoft Visual C++ 14.0 is required. Get it with “Microsoft Visual C++ Build Tools”: http://landinghub.visualstudio.com/visual-cpp-build-tools
是因?yàn)榘惭b這個包的 window 系統(tǒng)需要首先安裝 Microsoft Visual C++ V14.0以上 才行。
可以在https://visualstudio.microsoft.com/zh-hans/downloads/直接下載即可,安裝之后需要把 c++ de 庫之類的東西都安裝了,然后再在命令行進(jìn)行安裝 mitmproxy即可。
安裝完之后查看 mitmproxy版本
命令行輸入 mitmproxy --version

顯示錯誤,這是因?yàn)?window操作系統(tǒng)不支持使用 mitmproxy 這個命令,我們可以使用 mitmdump 或 mitmweb 代替。

這樣就成功了。
如何使用 mitmproxy抓包
開啟抓包:mitmdump

這樣子就是開始抓包了,監(jiān)聽了所有的地址,端口是 8080,如果需要改端口號,可以按 ctrl + c 退出抓包,然后輸入下列命令:
mitmdump -p 8889
這樣子就把端口號改成 8889 了

如果需要抓手機(jī)的包的話,就需要在你連接的 wifi 修改代理

上面的主機(jī)名字是 你電腦抓包的 ip 地址,端口號是剛才設(shè)置的端口號。設(shè)置完了打開瀏覽器查看。

發(fā)現(xiàn)需證書有問題,我們還需要安裝 mitmproxy 提供的證書,要不抓包失敗。
安裝證書:瀏覽器輸入 mitm.it

然后根據(jù)你的手機(jī)系統(tǒng)進(jìn)行安裝即可。
然后就可以進(jìn)行抓包了。在瀏覽器輸入 baidu.com 就可以看到下面內(nèi)容了。

電腦端的也是這樣差不多,都是設(shè)置代理后安裝證書,這里就不多說了。
抓包之后的操作
由于在 window上操作,只能使用 mitmdump 和 mitmweb這兩個命令,mitmdump 命令是沒有界面,只能進(jìn)行默默地抓包,不能進(jìn)行數(shù)據(jù)包的查看和過濾。而 mitmweb 和在一個網(wǎng)頁上進(jìn)行抓包的調(diào)試。所以下面我們用 mitmweb 來進(jìn)行調(diào)試。
1.開始抓包
mitmweb -p 8889

在你輸入 baidu.com 的時候就會看到這些包了。
查看包的請求信息和響應(yīng)信息只需要點(diǎn)擊相對應(yīng)的包即可。其他的就不多說了。
在 mitmproxy 上運(yùn)行 python腳本
mitmproxy 的強(qiáng)大之處就在于它能夠運(yùn)行 python 腳本來處理相關(guān)的請求,現(xiàn)在就來看看如何處理吧。
mitmdump -p 889 -s mitm.py
這個就是在抓包的同時運(yùn)行了 mitm.py 的腳本了,代碼是:
# 必須這樣寫 def request(flow): print(flow.request.headers) # 打印請求頭
這個是打印抓到的請求頭,方法名和參數(shù)的名稱是固定的,寫錯了就運(yùn)行不了這個腳本。

這樣子就開始了,然后在手機(jī)上打開網(wǎng)頁。

這樣子就把他們的請求頭給輸出了。
但是輸出并不明顯,我們可以使用里面的一個日志模塊來輸出,這樣子就會顯示出不同的顏色了。

命令行上顯示這樣:

這樣子就清楚多了。
除了上面的請求頭,我們還可以訪問他們的請求方法,請求路徑等。

響應(yīng)的請求也可以獲?。?/p>

同樣,這里的方法名和參數(shù)也是固定的,不寫這個會捕捉不到。
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
讓Python腳本暫停執(zhí)行的幾種方法(小結(jié))
這篇文章主要介紹了讓Python腳本暫停執(zhí)行的幾種方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-07-07
django model 條件過濾 queryset.filter(**condtions)用法詳解
這篇文章主要介紹了django model 條件過濾 queryset.filter(**condtions)用法詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-05-05
詳解PyTorch預(yù)定義數(shù)據(jù)集類datasets.ImageFolder使用方法
這篇文章主要為大家介紹了PyTorch預(yù)定義數(shù)據(jù)集類datasets.ImageFolder使用方法詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-04-04
完美解決pycharm導(dǎo)入自己寫的py文件爆紅問題
今天小編就為大家分享一篇完美解決pycharm導(dǎo)入自己寫的py文件爆紅問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-02-02
python實(shí)現(xiàn)小世界網(wǎng)絡(luò)生成
今天小編就為大家分享一篇python實(shí)現(xiàn)小世界網(wǎng)絡(luò)生成,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-11-11
pytorch 實(shí)現(xiàn)在一個優(yōu)化器中設(shè)置多個網(wǎng)絡(luò)參數(shù)的例子
今天小編就為大家分享一篇pytorch 實(shí)現(xiàn)在一個優(yōu)化器中設(shè)置多個網(wǎng)絡(luò)參數(shù)的例子,具有很好參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-02-02

