這個月的小程序基線測試又開始了,但是突然發現抓不到包了。通過一些嘗試后,問題暫時解決,特此記錄一下。

問題出現之前的測試環境:

Pixel 4
安卓11 RQ3A.210805.001.A1
Magisk 23.0
Move Certificates v1.9
Riru v23.5
Riru – EdXposed v0.5.2.2_4683
MagiskHide Props Config v5.4.1-v131
Busybox for Android NDK 1.33.1
Edxposed 0.5.2.2_4683
TrustMeAlready 1.11
已裝了Burp Suite的證書并用move certificates插件將其移動到系統目錄(/system/etc/security/cacerts)
Windows 10
Burpsuite V2021.7

由于抓其他app的請求包是沒問題的,比如該小程序的app版本,這時懷疑是不是微信又在防御抓包方面升級了。

但是很快就放棄了這一想法,于是我第一時間看了Edxposed里面的

TrustMeAlready是什么狀態。開啟?關閉?

然后發現是開啟的,這就很奇怪了。

雖然在這次基線測試之前,測了其他項目,也頻繁改動TrustMeAlready的狀態,但是沒改其他東西啊!

接著只好先將其關閉,重啟手機,抓包!

結果意料之中,不光是小程序抓不到包了,其他app也抓不到了。趕緊改回來,重啟、抓包,小程序還是抓不到!!!

PC端

為了不耽誤項目進度,趕緊試試在PC端微信抓,結果也抓不到,如下圖所示:

看不到目標域名,期間嘗試過Proxifier也是也莫名其妙的抓不到,也試過HTTP Debug Pro

抓是可以抓了,但是居然不支持代理,也就是說我得一個一個請求的復制粘貼到burp里面去,最后用fiddler解決了問題:

也就是讓fiddler抓包,然后用burp的代理,這樣fiddler的流量就會經過burp:

這里有一個坑:以前抓包不把fiddler置為系統代理,同時在微信中設置fiddler的代理可以抓包,但是現在這樣的方式還是抓不到!如下圖所示:

所以只好在將fiddler動時設置為系統代理,然后選擇微信小程序進程進行抓包。到這里PC端的抓包就結束了

安卓端

在本文開頭已經說過了,安卓上抓小程序的流量,在以往的測試中是沒問題的,只是這次突然就抓不到了。

而且APP的流量是可以抓到的(Burp書已安裝,TrustMeAlready插件已開啟):

然后換了HTTPToolkit關閉TrustMeAlready插件),發現是可以抓到小程序流量的:

但是這個工具跟HTTP Debug Pro一樣,不支持代理,也就是說,沒辦法讓抓到的流量走burp的代理,不過既然能抓到包,那就說明是burp的問題。

PC端一樣,用fiddler來抓小程序的流量,再把流量轉到burp試試。

先試試fiddler抓安卓微信小程序(關閉TrustMeAlready插件,裝fiddler證書,重啟手機):

結果居然什么都沒有抓到,微信小程序那邊顯示的是“網絡繁忙中……”,再把TrustMeAlready插件開啟,重啟手機:

居然抓到了!后面將fiddler網關代理設置為burp代理即可。

目前為止,PC端和安卓端小程序抓包情況如下:

PC端微信小程序

抓包工具抓包結果Burp Suite失敗Fiddler成功HTTP Debug Pro成功

安卓端微信小程序

抓包工具是否開啟TrustMeAlready插件是否安裝證書抓包結果Burp Suite是是失敗Burp Suite否是失敗Fiddler是是成功Fiddler否是失敗HTTP Toolkit否是成功

因為裝了Move Certificates插件,用戶裝的插件都會自動move到系統目錄,所以沒安裝證書的情況暫時沒測試。

最終得到結論:

PC端微信小程序抓包:Fiddler設置系統代理,并將網關代理設置為burp的127代理+Burp Suite的logger++插件記錄流量。

安卓端微信小程序抓包:開啟TrustMeAlready插件的前提下,Fiddler網關代理設置為burp的127代理+Burp Suitelogger++插件記錄流量。(可以不設置為系統代理,因為不抓PC端流量)