介面測試之抓包實戰解決 Android 高版本無法抓取 https

欲野發表於2020-08-27

場景介紹

相信這個問題很多人都遇到過Android7.0以上系統無法抓包的問題,由於在測試過程中對分析定位問題很不方便,所以就想找了解決的辦法讓公司的開發童鞋改了改(畢竟我不能改開發程式碼,要是可以的話我就......),成功之後,就讓開發寫了一篇總結文章出來?,結果開發也說搞不定,於是自己百度,自己解決,所謂前人種樹後人乘涼嘛~~以下就是解決辦法。

問題來源與本身

遇到的問題:Android6.0及以下系統可以抓包,而Android7.0及以上系統不能再抓包?
產生原因:Android7.0+的版本新增了證照驗證,所以app內不再像原來一樣預設信任使用者的證照

解決思路

當時我立即採取了,如下解決措施
1.先百度
2.問開發
3.問同行
百度結果
看來看了網上大部分的部落格得到如下解決方案
方案一實現如下:
a.在Android工程目錄的res底下建立一個xml資料夾,然後在內部建立一個名為 “network_security_config.xml”的檔案

<network-security-config>
<base-config cleartextTrafficPermitted="true">
<trust-anchors>
<certificates src="system" overridePins="true" />
<certificates src="user" overridePins="true" />
</trust-anchors>
</base-config>
</network-security-config>

b.在AndroidManifest裡的標籤中,新增程式碼:

android:networkSecurityConfig="@xml/network_security_config"

然後從新編譯打包即可抓包,很是方便,對應開發童鞋來說,也是很方便,但是,測試的是企業微信小程式,想讓企業微信的開發人員幫我這麼幹,簡直是白日做夢,還不說安全的問題等。。。。。

方案二實現如下:

a.找一個低於6.0或者等於6.0版本的Android裝置或者模擬器,即可解決,但是考慮到:治標不治本,公司本身就沒有這樣的裝置,再加上找了幾個模擬器,都是Android7.0版本的,所以此方案,直接選擇放棄。
問開發結果

開發去研究了半天,結果過來告訴我,我的ios是可以抓包的啊,Android的我就不知道了,這是,我頓時想掀桌子。。。。。
問同行結果

同行提供瞭如下方案
1.使用方案1
2.換個工具抓,例如fidder,或者BurpSuite等,但是自己使用了,還是不行
3.直接去ng哪兒攔截,但是我需要抓取的有一部分是第三方的介面,前方已經高能,此路不通
最後還是不死心,還是自己繼續百度,要不上github找一下看看,終於黃天不負有心人,終於找到了滿足的條件的解決方法

最終解決方案如下

charles + VirtualXposed + JustTrustMe

實現步驟

進入github下載如下兩個pages
VirtualXposed:https://github.com/android-hacker/VirtualXposed
JustTrustMe:https://github.com/Fuzion24/JustTrustMe

第一步

使用如下adb命令分別安裝兩個pages

adb -s R3J6R19B20004228 inatall VirtualXposed
adb -s R3J6R19B20004228 install JustTrustMe

第二部

安裝完成進入VirtualXposed apk應用,點選6個小點進入設定頁面

第三步

進入設定頁面,點選模組管理,勾選JustTrustMe(當然我並沒有找到它,可能是我這個版本不需要在手動選擇了,安裝之後自動識別到了)重啟之後我們重新進去設定頁面,新增我們需要抓包的應用即可,我這裡選擇的企業微信做案例

第四步

點選新增應用,選擇需要抓包的軟體安裝

配置charles抓包

設定charles代理,此處不再說明,相信設定代理大家能自己解決,手機設定wifi裡面代理改成手動。輸入ip,埠:預設8888,注意手機和電腦在一個wifi下就ok,

第六步

回到VirtualXposed 上滑解鎖,開啟我們之前安裝的企業微信,則發現charles已經成功抓取到企業微信的HTTPS的資料包

總結

有時候,遇到問題很慌,不知所措,但是,作為一個合格的測試人員,遇到事情,應該泰山崩於前而色不變 麋鹿興於左而目不瞬,就比如本次經驗來說,開發都放棄了,但是經過一波幾折,最終還是通過自己的努力解決了,技術的道路沒有捷徑,需要我們一步一個腳印的走下去。就好比這件事情,研發都說搞不定了,我搞定了,研發看我的眼光都不一樣了,以後提bug也更加有說服力了?。

結束語

最後還是那句話,技術菜,可以被鄙視,文章寫得爛可以被噴,但是,學習的心不能被質疑

相關文章