mitmproxy抓取https請求實踐

1. 背景html

最近在準備iOS應用強制支持https的特性測試,須要梳理相應的請求,初步策略是選擇經過抓包工具進行驗證,查看相應的請求連接是否爲https, 覈對請求返回的狀態碼及返回數據是否正常。咱們經常使用的抓包工具主要是fiddler和charles, 可是我這邊使用charles抓取https遇到個坑,代理證書什麼都安裝了,SSL Proxy配置也正常,可是抓取的https請求就是返回失敗,且數據亂碼,以下圖:git

另外也有試用過anyproxy抓包工具,發現也是一樣的狀況,可是在同事電腦上是能夠正常的,百度了許久,目前還沒找到具體緣由,有知道緣由的,求告知。github

2. mitmproxy介紹網絡

官網:https://mitmproxy.org/app

Github地址:https://github.com/mitmproxy/mitmproxy工具

3. mitmproxy安裝測試

網絡上提供了三種方式,進行安裝ui

3.1 使用pip的方式安裝spa

 

[html] view plain copy.net

  1. pip install mitmproxy --ignore-installed six  

 

3.2 使用homebrew的方式安裝

 

[html] view plain copy

  1. brew install mitmproxy  

 

3.3 下載release文件,解壓安裝, 連接地址:https://github.com/mitmproxy/mitmproxy/releases/tag/v1.0.2

4. 抓取https實踐

4.1 啓動mitmproxy, 能夠直接雙擊mitmproxy文件啓動,也能夠添加mitmproxy路徑到PATH變量中,終端輸入mitmproxy命令進行啓動。

4.2 配置代理, 端口默認爲8080, 也能夠按以下進行修改

[html] view plain copy

  1. mitmproxy -b 電腦ip -p 指定端口  

 

4.3 Safari訪問mitmproxy.it,  安裝mitmproxy證書到手機上,並信任:

4.4 操做手機應用,查看相應的請求,這裏以美團爲例, 能夠看到相應的https請求可以正常的抓取,如圖:

5. 經常使用快捷鍵

  • 在列表界面,按用j,k或者上下方向鍵在列表上瀏覽
  • 在列表界面,按回車進入詳情界面
  • 在詳情界面,按q,返回列表界面
  • 在詳情界面,按tab鍵或者h,l,在Request,Response,Detail三個tab之間切換。按j,k或者上下方向鍵能夠滾動查看詳情
  • 在列表界面,按G跳到最新一個請求
  • 在列表界面,按g跳到第一個請求
  • 在列表界面,按d刪除當前選中的請求,按D恢復剛纔刪除的請求
  • 在列表界面,按z清空請求列表

6.  攔截與修改請求

6.1 請求列表界面,按i進入Intercept Filter模式, 輸入相應的關鍵字,便可攔截相應的請求;按esc能夠退出intercept filter模式:

 

6.2 點擊相應的請求,進入詳情界面,切換到Request tab, 按e進入編輯request請求,e.g. 修改請求參數:

6.3 修改完請求參數後,按a, 執行請求,查看response,發現請求修改爲功:

 

 

參考資料:

1. https://mitmproxy.org/doc/mitmproxy.html

2. http://www.tuicool.com/articles/EVV3Qza

相關文章
相關標籤/搜索