工具篇:簡談mitmproxy抓包
為什麼要學習抓包?
答:抓包可以讓你對傳輸資料更好的分析以便於除錯和測試程式,對於理解http協議也是很有幫助的,可以對網頁(這裡面的網頁是範指,畢竟現在基本都是webapp了)的資訊進行提取處理後再進行輸出。
那麼抓包都有什麼工具呢?
答:抓包的工具很多,比如Fiddler、Wireshark、等強大的程式設計師團隊為了方便的工具開發了很多,那我們今天就來介紹一個mitmproxy。
那我們為什麼要介紹mitmproxy?
答:fiddler的抓包對於windows系統很友好但是在linux和mac表現一般而且對資訊處理和轉發起來比較複雜,而mitmproxy適合於全平臺的手機抓包工具,可以對http請求進行簡單的處理和轉發,並且開源是一個命令列互動的工具,也有web端。
github地址:https://github.com/mitmproxy/mitmproxy
mitmproxy
是一個python開源的抓包互動式命令列工具,他的官網介紹是這樣的
mitmproxy
是一個具有控制檯介面的互動式,支援SSL的攔截代理。
mitmdump
是mitmproxy的命令列版本。認為tcpdump的HTTP。
mitmweb
是一個基於網路的mitmproxy介面。
pathoc
並pathod
旨在讓你手藝幾乎任何想得到的HTTP請求,包括那些創造性地違反標準不正當HTTP客戶端和伺服器應用程式。
這裡他的三個小工具,第一個mac,和linux版本支援很好但是暫時的win不支援,所以如果你的電腦是win系統那麼只可以使用,mitmdump、mitmweb 這樣的兩個程式。
安裝
在mac電腦上下載
brew install mitmproxy
在linux系統和win系統下的安裝可以在官網提供的釋出頁下載
https://github.com/mitmproxy/mitmproxy/releases/tag/v2.0.2
如果你的電腦裡免安裝了pip3工具也可使用
pip3 install mitmproxy或者mitmdump和mitmweb
那麼如果你下載的是壓縮包那麼解壓以後在環境變數下配置路徑就ok了。
使用
手機抓包大家都知道要安裝證書就是相當於一個護照有了它你才可以出國旅遊,在你安裝好mitmdump (我們這裡用win系統作為例子因為win只可以用mitmdump和mitmweb)
首先我們要把手機和電腦連結在同一個網路下比如我的電腦和Wifi都在連線在shangwang這個wifi下面
填寫上你的正確的ip地址和抓包開啟的埠號預設8080埠也可使用其他埠
我這裡是192.168.1.105所以伺服器輸入192.168.1.105埠號使用預設埠號8080就可以瞭如果大家想使用其他埠號也可以使用
mitmdump -p ****
進行埠指定,防止8080埠被其他的軟體所佔用。
手機配置好以後我們就開始使用了首先是訪問mitm.it網站安裝證書
選擇你的手機機型,我這裡是蘋果機型所以選擇第一個下載安裝好證書以後就可訪問網站了,如果你沒有安裝好證書就訪問其他網頁其他網頁是阻止訪問的,注意:蘋果機型是需要設定證書信任的11.x版本都是在設定->通用->關於本機->證書信任裡面設定信任證書。
操作抓包
我們設定完信任整數以後就可以流暢的訪問網頁了,那我們網頁的資訊就會在我們的命令列互動視窗顯示
而我們可以用python編寫指令碼來讓mitmproxy進行執行處理並返回值。
http://docs.mitmproxy.org/en/latest/scripting/overview.html
可以參考官網的指令碼欄
對於獲取的http請求進行自己想要的操作
操作指令碼
mitmdump -s add_header.py
這樣的話我們就用mitmdump運行了一個我們編寫的python指令碼可以幹很多事情
mitmdmup主要是可以執行指令碼來對資料進行處理這點很好對於其他的一些簡單的抓包如果你是win使用者還是使用Fiddler,而mitmproxy在這上面感覺並不佔優勢,但是在linux系統和mac使用它還是可以的。
我們用mitmdmup用python寫指令碼對於手機上面獲取的資料請求進行處理操作,那麼可以幹什麼呢?那就發揮你的想象寫一個簡單python指令碼來驗證下吧。