banner
毅种循环

毅种循环

请将那贻笑罪过以逐字吟咏 如对冰川投以游丝般倾诉

APP安全測試-模擬器踩坑記

模擬器選擇#

1. 逍遙模擬器(已棄用)
// 原因是因為做好環境之後開機總是提示你重新修復環境。
2. 雷電模擬器(現用)
// 有一個問題就是 4.0 的雷電模擬器掛了 WIFI 代理之後失效,需要使用 ADB 增加代理或者使用 profile 之類的軟體進行中轉代理。

版本的選擇#

1. 很多 APP 現已經不支持 7.0 系統以下,所以盡量安裝 7.0 的安卓模擬器。
2.7.0 安裝 XP 框架較為麻煩,需要找到對應的包,因此使用一鍵安裝 XP 框架解決。

證書配置#

按照網上那些老掉牙的文章,都是導出一個 Burp/Charles 證書之後,adb push 到模擬器,然後修改後綴為 crt 直接安全,這種方式在 Android 6 及之前的版本可用,從 Android 7.0 開始,Android 更改了信任用戶安裝的證書的默認行為,應用程序僅信任系統級 CA。這樣就導致安裝證書後,如果嘗試通過 Burp 或者 Charlse 代理訪問 https 網站,系統會提示 “該證書並非來自可信的授權中心”:

因為安卓安全機制的原因,7.0 以上的系統,安裝 BURP 證書需要打到系統信任裡面,這裡需要對 BURP 的證書做一些設置,如下:
image
image
導出 Burp 的證書後,使用 openssl 來做一些改動:

openssl x509 -inform DER -in cacert.der -out cacert.pem

image
查看 pem 證書的 hash 值並記錄,命令如下:

openssl x509 -inform PEM -subject_hash_old -in cacert.pem |head -1

image
將 pem 證書改名為 “hash 值.0”:

mv cacert.pem 9a5ba575.0

image

然後使用 adb 將.0 文件 push 到模擬器的 /system/etc/security/ 文件夾中,並將權限修改為 644:

adb push 9a5ba575.0 /system/etc/security/cacerts
adb shell chmod 644 /system/etc/security/cacerts/9a5ba575.0

如果更改不了權限,就使用 adb remount 來解除分區限制後導入,如下:
image
image
最後能看到信任證書在系統裡面即可。

安裝 Xpoesd 框架#

之前提到了,安裝很有問題,所以借用別人的經驗採取一鍵安裝。
Xposed_Android_7x64.exe

此文件適用於 64 位模擬器,系統為 Android7 的版本,不適用於夜神,請勿使用。

放在模擬器根目錄執行,等待重啟即可。

繞過雙向驗證#

有的時候因為 app 會對服務器端的證書進行校驗,這時候我們前面安裝的 burp 就不起作用了,應用在發現證書是偽造的情況下拒絕發送請求。根據這個報錯 + 抓不到包,我們可以確定應用是存在單向校驗的,也就是 SSL pinning,讓我們先來解決 SSL pinning 的問題。使用 JustTrustMe 可以繞過客戶端的證書校驗,下面勾選上 JustTrustMe,在 Xposed 框架下使用 JustTrustMe 繞過 SSL pinning。
image

雷電模擬器增加代理#

之前提到過,要么使用中轉配置,要么使用 ADB 我這裡增加的 ADB 配置。

添加代理

adb shell settings put global http_proxy 192.168.2.84:8080

移除代理

adb shell settings delete global http_proxy&adb shell settings delete global global_http_proxy_host&adb shell settings delete global global_http_proxy_port

或者沒有 delete 命令時

adb shell settings put global http_proxy :0

暫時只記錄這麼多吧。

載入中......
此文章數據所有權由區塊鏈加密技術和智能合約保障僅歸創作者所有。