1. 程式人生 > >charles抓取微信小程式資料(抓取http和https資料)

charles抓取微信小程式資料(抓取http和https資料)

本文中使用的是mac上的抓包工具charles進行抓包,手機是華為榮耀8,安卓版本7.0(其實跟版本沒啥關係)

要想抓取到微信小程式的資料首先要解決的第一個問題件就是如何

通過charles抓取手機上的資料(HTTP)

具體配置過程如下:

第一步,charles上通過proxy->proxy setting進入代理設定,入口如下圖所示

點選後進入如下所示介面

    

記住此處的port,預設為8888,也可以進行修改,只要不衝突就可以,勾選上Enable transparent HTTP proxying,到此為止完成charles上的初步設定。

到此為止,完成了電腦端的設定

               ----------------------------------小型分割線----------------------------------

第二步,設定手機代理,注意要保證手機所連線的wifi跟電腦在一個區域網內(就是連線同一個wifi就好了

首先,需要知道電腦的ip地址,我的電腦上通過系統偏好設定->網路可以檢視

注意此處電腦連線的是PHICOMM_air的wifi

手機上進入wifi設定,一般按住你正在連線的wifi一會會彈出一個選單,點選修改網路就到如下介面,勾選“顯示高階選項”,點選代理

注意此處手機連線的也是PHCOMM_air的wifi

點選代理後進入如下介面,伺服器主機名處填寫剛才查到的電腦的ip地址即可,伺服器埠填寫第一步中charles處設定的埠,預設是8888,如果做了修改,填寫設定charles時修改的埠值。

點選儲存,此時charles上會彈出一個對話方塊,點選allow即可。此時就可以抓取手機上的http資料包了(注意不是https)

如下圖所示,點入一個應用後,抓取到的http包

到此為止,完成了第一大步驟的設定,可以通過電腦抓取手機的HTTP資料包了

對於HTTPS資料,到此步為止,抓包工具上的列表部分會顯示一堆unknown的地址

*********************************************分割線************************************************************

完成以上步驟,charles會同時抓取手機以及電腦上的資料包,如果針對手機抓包可以通過取消勾選下圖所示的選項遮蔽掉

手機連線不上charles的幾種原因及解決方案:

1.確認手機跟電腦是不是在一個wifi環境下,我在使用過程中又一次手機由於wifi訊號強弱問題自動切換過wifi導致抓了一般的資料包抓不到了

2.可以嘗試更換一下埠號(8888可能已經被佔用)

3.可以通過電腦手動新增手機的ip

4.試試關掉電腦防火牆,在重新連線

5.最後大招,萬能重啟。。。重新開啟charles,重新設定手機連線。。。

*********************************************分割線************************************************************

抓取HTTPS資料包

首先是電腦端的配置,進入charles的Help->SSL Proxying->Install Charles Root Certificate

點選Install Charles Root Certificate之後,會彈出mac的鑰匙串訪問頁面

(正常第一次進去這個證書應該是一個紅叉,我這裡由於已經進行過設定所以顯示正常)

右鍵點選該證書,選擇選單中的“顯示簡介選項”,接著進入信任欄目,將其全部置為“始終信任”

完成這一步的設定後,這個根證書應該會跟我上面一個截圖一樣,而不會顯示紅叉

接著點選Proxy->SSL Proxy Settings,彈出如下頁面

彈出的對話方塊中,勾選Enable SSL Proxying,然後點選add新增Host為*和Port為443,點選ok(此處將host設定為*的意思是主抓取全部的http是資料包,如果想針對某個域名抓取可以在此設定)

到此為止,完成了電腦端的設定

                   ----------------------------------小型分割線----------------------------------

接著需要在手機端安裝證書,點選Charles上的Help->SSL Proxying->Install Charles Root Certificate on a Mobile Device or Remote Browser

點選之後彈出如下對話方塊:

接著在手機瀏覽器上訪問charlesproxy.com/getssl這個地址(此處請注意,如果是小米手機,最好不要用自帶的瀏覽器,親自踩坑的忠告……),我的手機讓我輸入鎖屏密碼,輸入之後,會彈出如下介面:

輸入一個名字比如charlesproxy之後點選確定,會有一個一閃而過的提示,就ok了

此時進入小程式,可以看到charles上能夠看到https的介面的地址和資料了

後續的工作諸如分析爬取就仁者見仁智者見智了~

注意,有一些應用使用的網路框架是不允許通過代理訪問的,此時通過charles抓包顯示的地址仍是unknown,或者手機上訪問該應用會提示網路連線錯誤等資訊,此時取消勾選charles的SSL Proxying settings中的勾選框就可以正常訪問了

最後,抓取工作完成後,記得把手機上的代理設定恢復原樣,否則當電腦上的charles關閉時,手機將無法正常訪問網路