1. Mitmproxy 簡(jiǎn)介
- Mitmproxy本意為中間人攻擊代理;
- 在爬蟲(chóng)中主要用作抓取 http_connect、request、response 等數(shù)據(jù);
- mitmproxy官方文檔地址:https://docs.mitmproxy.org/stable/;
【提示】
Mitmproxy 相較于 fillder、wireshark 的不同:
-- mitmproxy 不僅可以截獲請(qǐng)求、幫助開(kāi)發(fā)者查看、分析、更可以通過(guò)自定義腳本進(jìn)行二次開(kāi)發(fā),修改爬蟲(chóng)行為;
2. 配置 Mitmproxy
2.1 安裝 mitmproxy
brew install mitmproxy
安裝好后檢查安裝情況。
mitmdump --version
得到下圖所示內(nèi)容,表示安裝成功。

2.2. 啟動(dòng) mitmproxy
mitmweb # mitmproxy有三種啟動(dòng)方式,此處使用的命令可以提供一個(gè)web交互界面
【提示】
mitmproxy有三種啟動(dòng)命令:
(1) mitmweb
-- 提供一個(gè)web界面;
-- 代理端口:綁定了 *:8080作為代理端口;
-- 交互界面地址:localhost:8081;
(2) mitmproxy
-- 提供命令行界面;
-- 可以通過(guò)命令過(guò)濾請(qǐng)求;
(3) mitmdump
-- 【TODO】
得到下圖,表示啟動(dòng)成功,端口號(hào)默認(rèn)為 8080。

此時(shí),瀏覽器自動(dòng)打開(kāi)下圖頁(yè)面,這是 mitmproxy 提供的 web 交互界面。

2.3. 安裝CA證書(shū)
第一步,將電腦和手機(jī)連到同一個(gè) WiFi 中;
第二步,獲取本機(jī)的內(nèi)網(wǎng)IP地址;
ifconfig
得到電腦本機(jī)的內(nèi)網(wǎng)IP地址為 192.168.1.102。

第三步,給手機(jī)WiFi配置代理
-
服務(wù)器地址為電腦內(nèi)網(wǎng)IP地址,端口為8080
服務(wù)器地址為電腦內(nèi)網(wǎng)IP地址,端口為8080
第四步,安裝證書(shū)
使用手機(jī)瀏覽器訪問(wèn) mitm.it,得到下圖。

我的手機(jī)為iPhone,點(diǎn)擊 Apple 后得到下圖。

點(diǎn)擊允許,開(kāi)始安裝。

安裝完成后,得到已驗(yàn)證的提示。

2.4. 開(kāi)啟證書(shū)
手機(jī)依次點(diǎn)擊:設(shè)置 -> 通用 -> 關(guān)于本機(jī) -> 證書(shū)信任設(shè)置,開(kāi)啟 mitmproxy 證書(shū)。

注意:
- 有小伙伴反饋,安卓 7.0 以上版本不再信任證書(shū),需要將證書(shū)安裝到 root 路徑下,這導(dǎo)致數(shù)據(jù)抓包不成功、手機(jī)應(yīng)用網(wǎng)絡(luò)不通。
- 博主還沒(méi)有做過(guò)研究,想提示一下安卓 7.0 用戶(hù)如果遇到這類(lèi)問(wèn)題,可以嘗試使用模擬器降低安卓版本,看是否能解決問(wèn)題,有時(shí)間的話(huà)麻煩把結(jié)果給博主反饋一下,謝謝!
2.5 配置完成
此時(shí),mitmweb 頁(yè)面出現(xiàn)下圖內(nèi)容,紅框中的為 mitmproxy 抓取的手機(jī)的請(qǐng)求。

到這里,就成功完成了 mitmproxy配置。
3. mitmproxy 獲取APP數(shù)據(jù)
參見(jiàn)本博另一篇文章: APP爬蟲(chóng):mitmproxy 獲取 京東APP 數(shù)據(jù)
