使用Proxyman抓取Android的https請求
攔截網(wǎng)絡(luò)請求
有時,您可能需要測試您的移動應(yīng)用程序并檢查與其關(guān)聯(lián)的所有網(wǎng)絡(luò)請求。
在網(wǎng)絡(luò)上,此任務(wù)非常簡單,只需按Ctrl + Shift + I打開開發(fā)人員工具即可。
從那里,您可以導(dǎo)航到網(wǎng)絡(luò)選項卡并檢查與網(wǎng)頁相關(guān)的所有 HTTP 請求,如下所示:
瀏覽器中的網(wǎng)絡(luò)請求
然而,在移動開發(fā)方面,過程并不那么簡單。與網(wǎng)絡(luò)不同,沒有內(nèi)置機制可以通過打開開發(fā)人員工具輕松檢查 HTTP 請求。
在這篇博文中,我們將探索通過使用代理來攔截網(wǎng)絡(luò)請求的迷人世界。我們將指導(dǎo)您逐步設(shè)置和配置代理服務(wù)器,該服務(wù)器將充當您的設(shè)備和網(wǎng)絡(luò)之間的中介。
通過利用代理服務(wù)器的功能,我們能夠攔截、檢查和分析所有傳入的網(wǎng)絡(luò)請求。這為應(yīng)用程序的調(diào)試、性能優(yōu)化和安全分析開辟了無限可能。
為了更容易理解,我將這個過程分為五個步驟。這些都是:
1.設(shè)置 Android 模擬器
2.代理設(shè)置
3.準備證書
4.部署證書
5.在 Android 模擬器上設(shè)置代理 讓我們詳細探討每個步驟。
1. 設(shè)置Android模擬器
要開始此過程,您需要安裝 Android Studio。 成功安裝后,啟動 Android studio。在窗口頂部的工具欄上,找到并單擊菜單Tools。之后Device Manager從下拉菜單創(chuàng)建所需要的設(shè)備并運行設(shè)備。
avd
首先,使用該命令emulator -list-avds顯示系統(tǒng)上所有已安裝模擬器的列表。此命令將為您提供可用設(shè)備的名稱。從列表中確定您要運行的設(shè)備的名稱。
一旦確定了要啟動的設(shè)備,就可以使用該emulator -avd deviceName命令。deviceName將命令中的名稱替換為所需設(shè)備的實際名稱。該命令將使用指定的設(shè)備啟動模擬器。
確保您已設(shè)置模擬器命令正常工作所需的所有環(huán)境變量非常重要。這將確保命令被識別并成功執(zhí)行。
列出設(shè)備
設(shè)置 Android 模擬器后,您可以選擇從APKMirror下載并安裝所需應(yīng)用程序的 APK 文件。APKMirror 是一個信譽良好的網(wǎng)站,您可以在其中找到各種 Android 應(yīng)用程序的各種 APK 文件。
下載 APK 文件后,您可以繼續(xù)將其安裝在 Android 模擬器上。您可以將下載的 APK 文件拖放到模擬器窗口中,也可以使用模擬器的文件傳輸機制導(dǎo)入 APK 文件。
2. 代理設(shè)置
在繼續(xù)安裝代理之前,必須確保 OpenSSL 和 Android 調(diào)試橋 (ADB) 已正確設(shè)置。以下是您應(yīng)該遵循的步驟:
如果您尚未安裝OpenSSL ,請先在您的系統(tǒng)上安裝OpenSSL 。有關(guān)安裝過程,請參閱特定于您的操作系統(tǒng)的文檔。openssl version安裝后,您可以通過在終端或命令提示符中運行命令來驗證安裝。如果安裝正確,這將顯示 OpenSSL 版本。
檢查 OpenSSL 版本
接下來,確認您可以從終端或命令提示符訪問 Android 調(diào)試橋 (ADB),這一點很重要。使用該命令adb version檢查 ADB 是否可訪問且配置正確。如果命令返回ADB版本,則表示設(shè)置正確。
成功設(shè)置 OpenSSL 并確認對 ADB 的訪問權(quán)限后,您可以繼續(xù)安裝代理。在本教程中,我們將下載并使用Proxyman作為示例工具。但是,您可以將相同的原則應(yīng)用于其他類似的工具,例如Charles Proxy或mitmProxy。
3. 準備證書
為了解密應(yīng)用程序請求,Proxyman 生成自定義 SSL 證書。要獲取此證書并將其配置為與 Android 操作系統(tǒng)一起使用,請執(zhí)行以下步驟:
打開您的網(wǎng)絡(luò)瀏覽器并訪問以下鏈接。您可以通過此鏈接下載 Proxyman SSL 證書。下載證書后,找到保存證書的文件夾:
http://proxy.man/ssl
找到下載文件的文件夾
?為了確保證書文件具有 Android 操作系統(tǒng)所需的正確格式,您需要對其進行重命名。打開命令提示符并導(dǎo)航到證書所在的文件夾。之后運行此命令:
hashed_name=`opensslx509-informPEM-subject_hash_old-inproxyman-ca.pem|head-1`&&cpproxyman-ca.pem$hashed_name.0ThiscommandusesOpenSSLtogenerateahashednameforthecertificateandthenrenamesthefileaccordingly.Byfollowingthesesteps,youobtainthecustomSSLcertificatefromProxymanandrenameittotheformatexpectedbyAndroidOS.ThiscertificateisessentialfordecryptingapprequestsandenablingProxymantointerceptandanalyzethenetworktraffic.
此命令使用 OpenSSL生成證書的哈希名稱, 然后相應(yīng)地重命名文件。通過執(zhí)行以下步驟,您可以從Proxyman獲取自定義SSL 證書,并將其重命名為Android 操作系統(tǒng)所需的格式。
此證書對于解密應(yīng)用程序請求并使Proxyman能夠攔截和分析網(wǎng)絡(luò)流量至關(guān)重要。
此命令在 Windows Power shell 上不起作用,因此我在 Git Bash 終端上運行了此命令:
在 Git bash 上運行命令
命令執(zhí)行成功,并.0在同一文件夾中生成了一個擴展名的文件:
獲取Android證書
4. 部署證書
我們在上一步中生成的文件.0是將要添加到 Android 模擬器中的證書。為此,我們首先打開終端并列出可用的 AVD:
emulator-list-avds
從可用的 AVD 中,我們將使用以下命令運行所需的 AVD:
emulator-avd-writable-system
請注意,我們使用-writable-system標志來啟動具有可寫系統(tǒng)權(quán)限的 AVD,從而允許修改。之后我們需要打開另一個終端并運行以下命令:
adbroot
此命令以 root 權(quán)限重新啟動 ADB 守護進程。之后,我們運行此命令以禁用設(shè)備上的安全啟動驗證:
adbshellavbctldisable-verification
接下來我們使用以下命令重新啟動設(shè)備:
adbreboot
設(shè)備重新啟動后,運行以下命令以 root 身份重新啟動 ADB:
adbroot
通過執(zhí)行以下命令將分區(qū)重新掛載為讀寫:
adbremount
如果 ADB 提示您重新啟動設(shè)備,請adb reboot再次運行,然后運行adb root和adb remount?,F(xiàn)在我們準備.0使用以下命令將重命名的 SSL 證書文件(我們之前生成的文件)推送到設(shè)備,并替換
adbpush/system/etc/security/cacerts
此命令將證書文件復(fù)制到設(shè)備上的相應(yīng)目錄?,F(xiàn)在我們將通過運行以下命令為證書文件設(shè)置正確的權(quán)限:
adbshellchmod664/system/etc/security/cacerts/
現(xiàn)在我們需要使用以下命令最后一次重新啟動設(shè)備:
adbreboot
設(shè)備將重新啟動,并將部署 SSL 證書。我們已成功將 SSL 證書部署到您的 Android 模擬器中。這將允許模擬器識別并信任該證書,從而使 Proxyman 能夠攔截和分析來自設(shè)備的網(wǎng)絡(luò)流量。
現(xiàn)在要驗證 Android 設(shè)備上的證書,您可以導(dǎo)航到Android 設(shè)備設(shè)置Trusted Credentials中的System部分,您可以找到選項卡下列出的證書。這確認證書已成功安裝并被您的 Android 設(shè)備識別:Encryption & CredentialsProxymanLLCSystem
驗證證書
5. 在Android模擬器上設(shè)置代理
最后一步涉及我們配置 Android 模擬器以使用我們設(shè)置的 Proxyman 代理。為此,請在您的計算機上啟動 Proxyman。在 Proxyman 中,導(dǎo)航至Certificate菜單。Install Certificate on Android從下拉列表中選擇。Physical Devices從子菜單中選擇。請注意,您無需擔心該術(shù)語Physical Devices,因為我們不會遵循該特定指南。我們只需要此菜單中的一些基本細節(jié):
Proxyman 上的物理設(shè)備
在Android setup guide中,確保復(fù)制 IP 地址和端口號。該過程的后續(xù)步驟將需要這些詳細信息:
復(fù)制 IP 和端口號
接下來是轉(zhuǎn)到 Android 模擬器并單擊菜單圖標,如屏幕截圖所示:
菜單按鈕
單擊Settings側(cè)欄中的選項。單擊后,Settings,您可以繼續(xù)導(dǎo)航到該Proxy選項卡:
導(dǎo)航至設(shè)置
在代理選項卡中,選中該Manual proxy configuration選項。之后粘貼我們從ProxymanAndroid setup guide步驟復(fù)制的 IP 地址和端口并點擊apply按鈕:
配置IP和端口號
我們已經(jīng)成功完成了攔截來自 Android 設(shè)備的 HTTP 請求的所有必要設(shè)置步驟?,F(xiàn)在,我們可以啟動Proxyman并在 Android 模擬器上運行應(yīng)用程序。當我們使用應(yīng)用程序時,Proxyman將捕獲并顯示與網(wǎng)絡(luò)請求相關(guān)的所有相關(guān)詳細信息和數(shù)據(jù),為我們提供有關(guān)應(yīng)用程序通信的寶貴見解和可見性。
使用Proxyman攔截網(wǎng)絡(luò)請求
審核編輯:劉清
-
Android系統(tǒng)
+關(guān)注
關(guān)注
0文章
56瀏覽量
13492 -
模擬器
+關(guān)注
關(guān)注
2文章
874瀏覽量
43208 -
OpenSSL
+關(guān)注
關(guān)注
0文章
21瀏覽量
8677 -
ADB驅(qū)動
+關(guān)注
關(guān)注
0文章
13瀏覽量
6263 -
HTTP接口
+關(guān)注
關(guān)注
0文章
21瀏覽量
1790
原文標題:使用Proxyman抓取Android的https請求
文章出處:【微信號:哆啦安全,微信公眾號:哆啦安全】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論