產生原理
是這樣的,當我們使用抓包工具抓包時,抓包工具在攔截了服務端返回的內容並重新發給客戶端的時候使用證書不是服務器端原來的證書,而是抓包工具自己的,抓包工具原來的證書並不是APP開發者設定的服務端原本的證書,於是就構成了中間人攻擊,觸發SSL Pinning機制導致鏈接中斷,所以我們無法直接抓到包。
常見的開啟了SSL Pinning的APP大致分為兩種操作:
1、服務端使用了某個權威證書頒發機構(CA)頒發的證書,並且在APP中校驗證書是否正常;
2、服務端使用了CA頒發的證書或者自己給自己頒發證書,並且在APP中校驗證書本身是否正常的,需要將證書與APP本體一同下發。有把證書混淆在代碼里面藏起來的,也有直接放在資源目錄下的。
SSL Pinning介紹:
Xposed框架介紹:
Xposed框架(Xposed Framework)是一套開源的、在Android高權限模式下運行的框架服務,可以在不修改APK文件的情況下影響程序運行(修改系統)的框架服務,基於它可以制作出許多功能強大的模塊,且在功能不沖突的情況下同時運作。
Xposed框架安裝和JustTrustMe安裝
python安裝mitmproxy
pip install mitmproxy
安裝完成后,開啟一個mitmproxy的服務,比如執行命令mitmweb -p 8889,然后在瀏覽器或者移動端中進行mitm.it進行證書下載,否則會出現訪問網站時證書不受信任,在windows系統中可以使用mitmweb、mimtdump查看分析網站接口
1. 查看本地電腦的ip地址,修改夜神模擬器中的wifi,修改網絡改成手動, 輸入IP地址和抓包工具的開啟的端口號。
2. 將模擬器開始開發者模式,打開usb工具。
3. 輸入adb devices,查看鏈接的設備名稱。
問題:
如何查看app的包名、appActivity、deviceName。
設備需要修改執行程序才能連接到移動端設備等。
最后:一般爬取分為自動化操作app + mitmdump抓取流請求或者響應攔截,最終將數據存入指定數據庫中。