RM新时代网站-首页

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何使用Proxyman抓取Android的https請求?

哆啦安全 ? 來源:虎哥Lovedroid ? 2023-10-19 10:29 ? 次閱讀

使用Proxyman抓取Android的https請求

d9cff3b6-6d8a-11ee-939d-92fbcf53809c.png

攔截網(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 請求,如下所示:

d9df7c28-6d8a-11ee-939d-92fbcf53809c.png

瀏覽器中的網(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è)備。

d9eb1d3a-6d8a-11ee-939d-92fbcf53809c.png

avd

首先,使用該命令emulator -list-avds顯示系統(tǒng)上所有已安裝模擬器的列表。此命令將為您提供可用設(shè)備的名稱。從列表中確定您要運行的設(shè)備的名稱。

一旦確定了要啟動的設(shè)備,就可以使用該emulator -avd deviceName命令。deviceName將命令中的名稱替換為所需設(shè)備的實際名稱。該命令將使用指定的設(shè)備啟動模擬器。

確保您已設(shè)置模擬器命令正常工作所需的所有環(huán)境變量非常重要。這將確保命令被識別并成功執(zhí)行。

da043158-6d8a-11ee-939d-92fbcf53809c.png

列出設(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 版本。

da0d95c2-6d8a-11ee-939d-92fbcf53809c.png

檢查 OpenSSL 版本

接下來,確認您可以從終端或命令提示符訪問 Android 調(diào)試橋 (ADB),這一點很重要。使用該命令adb version檢查 ADB 是否可訪問且配置正確。如果命令返回ADB版本,則表示設(shè)置正確。

da1bf162-6d8a-11ee-939d-92fbcf53809c.png

成功設(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

da3256a0-6d8a-11ee-939d-92fbcf53809c.png

找到下載文件的文件夾

?為了確保證書文件具有 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 終端上運行了此命令:

da3686e4-6d8a-11ee-939d-92fbcf53809c.png

在 Git bash 上運行命令

命令執(zhí)行成功,并.0在同一文件夾中生成了一個擴展名的文件:

da4001ec-6d8a-11ee-939d-92fbcf53809c.png

獲取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

da4b87f6-6d8a-11ee-939d-92fbcf53809c.png

驗證證書

5. 在Android模擬器上設(shè)置代理

最后一步涉及我們配置 Android 模擬器以使用我們設(shè)置的 Proxyman 代理。為此,請在您的計算機上啟動 Proxyman。在 Proxyman 中,導(dǎo)航至Certificate菜單。Install Certificate on Android從下拉列表中選擇。Physical Devices從子菜單中選擇。請注意,您無需擔心該術(shù)語Physical Devices,因為我們不會遵循該特定指南。我們只需要此菜單中的一些基本細節(jié):

da5393b0-6d8a-11ee-939d-92fbcf53809c.pngProxyman 上的物理設(shè)備

在Android setup guide中,確保復(fù)制 IP 地址和端口號。該過程的后續(xù)步驟將需要這些詳細信息

da5cdc0e-6d8a-11ee-939d-92fbcf53809c.png

復(fù)制 IP 和端口號

接下來是轉(zhuǎn)到 Android 模擬器并單擊菜單圖標,如屏幕截圖所示:

da647e50-6d8a-11ee-939d-92fbcf53809c.png

菜單按鈕

單擊Settings側(cè)欄中的選項。單擊后,Settings,您可以繼續(xù)導(dǎo)航到該Proxy選項卡:

da75d542-6d8a-11ee-939d-92fbcf53809c.png

導(dǎo)航至設(shè)置

在代理選項卡中,選中該Manual proxy configuration選項。之后粘貼我們從ProxymanAndroid setup guide步驟復(fù)制的 IP 地址和端口并點擊apply按鈕:

da8e3772-6d8a-11ee-939d-92fbcf53809c.png

配置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)用程序通信的寶貴見解和可見性。

da99ec48-6d8a-11ee-939d-92fbcf53809c.png

使用Proxyman攔截網(wǎng)絡(luò)請求






審核編輯:劉清

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 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)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    使用curl+wget抓取網(wǎng)頁方法

    Linux抓取網(wǎng)頁,簡單方法是直接通過 curl 或 wget 兩種命令。curl 和 wget 命令,目前已經(jīng)支持Linux和Windows平臺,后續(xù)將介紹。curl 和 wget支持協(xié)議curl
    發(fā)表于 02-25 09:54

    CC2540能否抓取Android手機之間的數(shù)據(jù)包?

    現(xiàn)在使用Android手機與CC2564MODN進行通信,請問利用packet sniffer和CC2540 USB Dongle能否抓取cc2564MODN與Android手機之間的數(shù)據(jù)包?
    發(fā)表于 03-31 16:35

    TLS-V1.2 HTTPS請求吞吐量非常差

    測試與FRIERTOS + LWIP建立在43438。與TLS-V1.1相比,TLS-V1.2 HTTPS請求吞吐量非常差。TLSV1.1每分鐘發(fā)送的HTTPS請求數(shù)是TLSV1.2的
    發(fā)表于 10-23 15:14

    LwIP+STM32 HTTP和HTTPS請求格式無數(shù)據(jù)返回

    ;value":0} 參照上面的例子做HTTPS請求就無數(shù)據(jù)返, 通過chrome瀏覽器的插件postman對HTTPS請求抓取
    發(fā)表于 01-17 07:44

    【技術(shù)雜談】從數(shù)據(jù)抓取到可視化分析

    點擊搜索結(jié)果“下一頁”,查看網(wǎng)絡(luò)數(shù)據(jù)的交互情況,可以在 XHR 選項卡發(fā)現(xiàn)真正的數(shù)據(jù)加載請求:嘗試抓取:第一步:模擬發(fā)送請求,嘗試抓取數(shù)據(jù)。帶上請求
    發(fā)表于 07-11 09:30

    Fiddler抓取手機app請求報文的實現(xiàn)步驟?

    Fiddler抓取手機app請求報文
    發(fā)表于 11-04 09:46

    RK3288 Android6.0系統(tǒng)的Audio錄音PCM數(shù)據(jù)抓取過程簡析

    1、Audio錄音PCM數(shù)據(jù)抓取流程介紹  Platform: Rockchip  OS: Android 6.0  Kernel: 3.10.92  當錄音異常時需要把數(shù)據(jù)dump出來判斷問題出在哪一層,RK雖然在HAL層已經(jīng)提供了dump方法,但有點問題:  原作者:
    發(fā)表于 11-14 18:19

    Android開發(fā)的各大網(wǎng)絡(luò)請求庫實際案例

    Android開發(fā)的 各大網(wǎng)絡(luò)請求庫的實際案例。
    發(fā)表于 09-14 20:21 ?4次下載

    Android設(shè)計搜索體驗

    Theresa has you covered. Learn more at: https://software.intel.com/android https://software.intel.com/ux htt
    的頭像 發(fā)表于 10-15 09:09 ?1803次閱讀

    HTTPS為什么是安全的

    HTTPS出現(xiàn)之前,所有請求都是以明文方式送出的,那么如果有人在傳輸途中偷聽或者抓包的話,你的所有通信內(nèi)容都會泄漏。比較安全的方法是將通信內(nèi)容加密在發(fā)送給對方。加密方法有兩種,對稱加密和非對稱加密。
    發(fā)表于 06-11 08:00 ?0次下載
    <b class='flag-5'>HTTPS</b>為什么是安全的

    HTTPS如何保證數(shù)據(jù)安全?講得很細!

    如何保證數(shù)據(jù)安全性3.對稱加密和非對稱加密4.HTTPS請求過程5.如何防止數(shù)字證書被篡改6.單雙向認證1為什么說HTTP不安全?HTTP本質(zhì)上就是一個TCP連接
    的頭像 發(fā)表于 11-01 16:34 ?871次閱讀
    <b class='flag-5'>HTTPS</b>如何保證數(shù)據(jù)安全?講得很細!

    http和https的區(qū)別

    1.1 http協(xié)議格式是什么 請求報文格式:請求行、請求頭、空一行、請求請求行包括:請求
    的頭像 發(fā)表于 11-10 16:42 ?2377次閱讀
    http和<b class='flag-5'>https</b>的區(qū)別

    logcat命令抓取日志方法

    命令抓取日志 logcat -b main -b system -b crash -r 1024 -n 5 -f android.log -v threadtime -b:加載可供查看的緩沖區(qū)的日志
    的頭像 發(fā)表于 11-23 17:31 ?1146次閱讀
    logcat命令<b class='flag-5'>抓取</b>日志方法

    鴻蒙OS封裝【axios 網(wǎng)絡(luò)請求】(類似Android的Okhttp3)

    HarmonyOS 封裝 axios 網(wǎng)絡(luò)請求 包含 token 類似Android Okhttp3
    的頭像 發(fā)表于 03-26 21:14 ?2692次閱讀

    Python庫解析:通過庫實現(xiàn)代理請求與數(shù)據(jù)抓取

    在Python中,有多個庫可以幫助你實現(xiàn)代理請求和數(shù)據(jù)抓取。這些庫提供了豐富的功能和靈活的API,使得你可以輕松地發(fā)送HTTP請求、處理響應(yīng)、解析HTML/XML/JSON數(shù)據(jù),以及進行復(fù)雜的網(wǎng)絡(luò)操作。
    的頭像 發(fā)表于 10-24 07:54 ?164次閱讀
    RM新时代网站-首页