抓包 https 與 thrift 解析工具『mitmproxy』

再這篇文章開始以前,我先向以前一直關注個人人道個歉,以前寫的兩篇文章『iOS概念性解說』有人吐槽,寫的有問題,我認可,iOS個人確是初學,我也找了一個作iOS的朋友看了一下,確實寫的有些問題,以後關於iOS的文章我會請他審審稿,不會這樣輕易發出。javascript


好了,言歸正傳,說說mitmproxy,其實以前我抓包一直使用的是Charles,有可視化界面,方便快捷,可是不能抓到https的包,雖然也有說能夠抓的,可是按照網上的方法來,並無成功,並且,因爲如今須要測試thrift,Charles就更顯得力不從心了。java

安裝

首先你能夠經過brew或者pip來進行安裝:android

sudo easy_install pip
sudo pip install mitmproxy
sudo brew install mitmproxy複製代碼

安裝完畢以後就可使用了,可是若是須要解析thrift,須要安裝對應的插件ios

sudo pip install flask 
sudo pip install lxml 
sudo pip install thrift  
sudo pip install passlib 
sudo pip install pycrypto 
sudo pip install protobuf 
sudo pip install pyparsing
sudo pip install six==1.10.0複製代碼

若是報錯還須要裝一下libtiff libjpeg webp little-cms2 pillow
若是出現UBInt16錯誤
能夠下降一下版本web

sudo pip install construct==2.5.2複製代碼

開始使用

切換到命令行:flask


配置IP地址:
打開你的手機網絡,選擇手動配置代理:
將電腦的ip地址輸入進去,端口8080:

而後打開手機瀏覽器輸入mitm.it進入該網址:瀏覽器


選擇你的平臺,下載對應的證書,安裝便可。
執行,隨便發幾個請求,會有以下顯示:


點擊回車,能夠進入查看請求詳情:


tab鍵切換到response:

操做

  • 回車鍵,或者用鼠標點擊進入每一條請求
  • 上下鍵選擇請求
  • q是返回
  • 在請求界面,輸入l,根據輸入的字符轉進行篩選
  • 在請求的詳情界面輸入/能夠搜索字符

    攔截請求

    在請求界面輸入i,回車,進入Intercept filter模式:

在後面輸入你想攔截的網址便可(不用輸入全,能夠匹配便可):網絡

被攔截的網址爲紅色,選擇該條,點a,進行放行。測試

或者能夠選擇編輯再發送:
進入詳情頁,點擊e進行編輯:spa


編輯好以後再進行發送。

解析模式

前面說到了thrift的解析,若是你發送的請求使用了thrift,你看不到請求體中的實際內容,都是亂碼,這時候在詳情頁中點擊m:

選擇對應的模式便可,android是m,ios解析是o。

總結

總的來講mitmproxy是一款很方便的軟件,幾乎能知足咱們開發的全部需求(有的須要安裝插件),惟一的缺點就是界面不如Charles方便美觀,可是已經很是不錯了。
有疑問的朋友歡迎給我留言指正,或者關注個人公衆號留言:

相關文章
相關標籤/搜索