抓包工具之MitmProxy


抓包工具之MitmProxy

前言

​ 作為一名app后端程序員,經常需要對app抓包。說起抓包工具,一般用的是Charles或Fiddler,這兩個非常著名的工具。但有些情況下這兩個工具並不能滿足需求。

​ 場景一:產品或者運營反饋問題時一般都是截圖給開發,然后開發去復現、抓包、解決問題。很多時候開發希望產品或者運營能夠直接給出抓包鏈接便於分析,但是很顯然叫產品或運營去配置這些工具顯然很麻煩,實際情況是寫了文檔照着配依然可能會出錯。

​ 場景二:如果要對抓包的返回結果做進一步的批量處理,此時用Charles或者Fiddler就顯得不太方便了。例如之前很火的沖頂大會,在抓包到請求后能看到答題的題目,此時需要編寫程序去百度搜索答案,給出結果。

​ MitmProxy是一個能夠在服務器上24小時運行的Linux端抓包工具,支持Python對抓包結果進行處理,可以對特定的網址過濾,支持HTTPS抓包,MitmProxy的抓包結果還能轉換為Charles能打開的文件,便於進一步分析。

安裝

MitmProxy安裝需要python環境,至少是3.5版本的python.一般CentOS自帶的python版本都是2.7,快速安裝python3環境只需要如下幾行命令即可:

CentOS6用戶:
sudo yum install -y https://centos6.iuscommunity.org/ius-release.rpm
sudo yum install -y python35u python35u-pip

CentOS7用戶:
sudo yum install -y https://centos7.iuscommunity.org/ius-release.rpm
sudo yum install -y python35u python35u-pip

之后就是安裝MitmProxy,MitmProxy安裝時最好指定版本,不同的版本雖然基本功能是一樣的,但是一些腳本的使用還是有不同,推薦安裝穩定版本。

pip3.5 install mitmproxy==3.0.3

使用

  • 啟動mitmproxy
    mitmproxy 默認代理端口是8080,可以使用 -p 命令指定一個端口並啟動

    $ mitmproxy -p 8090
    
  • 配置瀏覽器和手機

  1. 和手機連接到同一個wifi環境下
  2. 修改瀏覽器代理服務器地址為運行mitmproxy的那台機器(本機)ip地址,端口設定為你啟動 mitmproxy時設定的端口,如果沒有指定就使用8080。
  3. 手機做同樣操作,修改wifi鏈接代理為 【手動】,然后指定ip地址和端口

​ 以手機配置為例:

  • 安裝CA證書(https抓包用)
    在手機或pc機上打開瀏覽器訪問 mitm.it 這個地址,選擇你當前平台的圖標,點擊安裝證書。

    操作

按鍵 說明
q 退出(相當於返回鍵,可一級一級返回)
d 刪除當前(黃色箭頭)指向的鏈接
D 恢復剛才刪除的請求
G 跳到最新一個請求
g 跳到第一個請求
C 清空控制台(C是大寫)
i 可輸入需要攔截的文件或者域名(逗號需要用\來做轉譯,栗子:feezu.cn)
a 放行請求
A 放行所有請求
? 查看界面幫助信息
^ v 上下箭頭移動光標
enter 查看光標所在列的內容
tab 分別查看 Request 和 Response 的詳細信息
/ 搜索body里的內容
esc 退出編輯
e 進入編輯模式

抓包截圖:

其他

Mitmproxy支持編寫Python腳本對結果進行處理,具體的腳本可以參考github上的官方腳本。

https://github.com/mitmproxy/mitmproxy/tree/master/examples

har_dump.py這個腳本為例,他的作用是將mitmproxy的抓包結果導出到har文件,以便於Charles能分析,運行以下命令即可一邊抓包,一邊導出文件:

mitmdump -s examples/complex/har_dump.py -w dump.mitm --set hardump=dump.har

更多的用法請參考官方腳本,值得一提的是官方腳本與MitmProxy版本強相關,如果不成功,不妨換個版本試試。

參考鏈接

https://mitmproxy.org

https://docs.mitmproxy.org/archive/v3

https://github.com/mitmproxy/mitmproxy/tree/master/examples

https://www.jianshu.com/p/0cc558a8d6a2

https://stackoverflow.com/questions/8087184/installing-python-3-on-rhel

鏡像地址

http://www.zhangwei.wiki/#/posts/7

pay


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM