你在用哪款 代理/抓包工具? 你可能會回答fiddler,charles 等HTTP/HTTPS抓包工具,或者是網卡級的 wireshark工具。
這里再推薦一款代理工具 mitmproxy ,前些天公司項目中有用到,這里做個簡單的介紹。
mitmproxy 是一個免費開源的交互式HTTPS代理。
github地址:https://github.com/mitmproxy/mitmproxy/
安裝
- 你可以下載客戶端
https://mitmproxy.org/downloads/
- mitmproxy 是基於Python 開發的庫,也可以通過 pip安裝。
pip install mitmproxy
使用
mitmproxy 提供了三個命令,啟動模式不同:
- mitmproxy -> 提供一個命令行界面(該命令不支持windows)。
- mitmdump -> 提供一個簡單的終端輸出。
- mitmweb -> 提供一個瀏覽器界面。
mitmdump
mitmdump是mitmproxy所提供的命令之一。它提供類似於tcpdump的功能,讓您可以查看、記錄和以編程方式轉換HTTP流量。
聲明:這個監聽工具的使用有些繞彎,一般智商的人看不懂!坐好小板凳,認真看!
- 啟動監聽
> mitmdump -w d://log.txt
Proxy server listening at http://*:8080
該命令會占用本地8080
端口,將監聽的數據寫入到 d://log.txt
文件中。
- 設置瀏覽器代理
你可以選擇監聽手機請求 或 本地的瀏覽器請求。我們以本地的瀏覽器請求為例。Windows用戶請打開自帶IE瀏覽器,設置代理。
如果看不懂,請自行百度 IE 如何設置局域網代理。注意,端口號一定要與 mitmproxy 監聽的端口8080
保持一致。
- 支持HTTPS
現在大部分網站都使用的是HTTPS,此時你隨便打開一個網站都會提示你。
所以,我們要換種方式啟動瀏覽器,以chrome為例子,先關閉chrome瀏覽器,打開windows 終端(cmd),輸入下面的命令
"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" --proxy-server=127.0.0.1:8080 --ignore-certificate-errors
"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe"
是chrome瀏覽器的安裝路徑,請根據你的安裝路徑替換。
上面的命令會幫你打開瀏覽器,那么這次可以訪問HTTPS的網站的,雖然,還是提示不安全。
- 查看監聽信息
此時,mitmproxy 已經獲取到監聽信息了。
打開 d://log.txt
文件,也能看到寫入的監聽信息。
最后,費勁巴拉搞半天,這有什么用?fiddler/charles 不香嗎? 別急!我們可以寫python腳本過濾 監聽的數據,我下周再介紹!