博客 / 詳情

返回

移動開發手機抓包

在移動應用開發過程中,我們會使用Charles和Fiddler進行抓包。通常要抓取HTTPS加密的數據包,一般使用Charles或者Fiddler4代理HTTP請求,配置證書信任後,便可拿到明文報文。但是由於Charles證書和Fiddler證書並非證書機構頒發的目標站點的合法證書,所以會不被信任。要解決這個問題,我們需要使用到Xposed+JustTrustMe工具來關閉SSL驗證。

一、 Charles使用

1.1 配置Charles

打開Charles,然後點擊【Proxy】 -->取消勾選 【windows proxy 】,如下圖。
在這裏插入圖片描述

1.2 代理https並添加證書

點擊【Proxy】-->【SSL Proxy Settings】彈出SSL代理設置界面 。
在這裏插入圖片描述
然後,選中【Client Certificates】添加域名的證書,如下圖。
在這裏插入圖片描述
然後,選擇 【Help】--> 【ssl proxy 】->【 Install Charles Root Certificate】,
在這裏插入圖片描述
安裝完成之後,再選擇【Install Charles Root Certificate on a Moblie Device or Remote Browser】,如下圖所示。
在這裏插入圖片描述
接下來,打開手機中的wifi設置,將電腦和手機連接在同一個wifi環境下,在手機端中修改當前wifi設置,將代理選擇手動,服務器主機名填入域名,服務器端口輸入8888即可。然後,打開瀏覽器輸入【chls.pro/ssl】回車會進入charles證書下載,加載之後是一個.pem文件,需要重命名更成成.crt後綴,這是手機端的證書安裝包,直接打開安裝即可.

正常來説,步驟到這就算完成了。但是如果手機是安卓7以後的版本,就會失敗 一直是“unknow”,這是因為應用程序不再信任用户或管理員添加的CA用於安全連接。對於這種問題,我們需要在Android應用程序中添加ssl信任配置。
打開Android應用的Mainfest.xml文件,添加如下內容。

  <application
       ...
        android:networkSecurityConfig="@xml/network_security_config" >

然後,新建network_security_config.xml文件,添加如下腳本。

<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
    <base-config cleartextTrafficPermitted="true" />
    <domain-config>
        <domain includeSubdomains="true">api.xj.mydeertrip.com</domain>//需要抓包的域名
        <trust-anchors>
            <certificates src="@raw/charles"/>//手機中下載的.pem格式證書文件 名稱 
        </trust-anchors>
    </domain-config>
</network-security-config>

其中,charles是.pem文件名,就是手機中下載的.pem證書文件放入工程的res/raw文件夾中即可。

如何配置Https,可以參考Charles 如何抓取https數據包

二、 Burp Suite

2.1 安裝Burp Suite

2.1.1 下載Burp Suite

如果還沒有下載Burp Suite,可以使用下面的地址下載Burp Suite下載鏈接。然後,我們下載macOS Burpsuite註冊機,解壓註冊機和漢化包,在終端中打開 BP 程序內置的 JAVA 文件路徑。

cd /Applications/Burp\ Suite\ Professional.app/Contents/java/app && open .

然後,將我們下載的macOS Burpsuite.zip的解壓內容拷貝進去,如下圖所示。
在這裏插入圖片描述

2.1.2 自定義啓動參數

然後,我們使用如下的命令打開vmoptions.txt文件自定義啓動參數。

open /Applications/Burp\ Suite\ Professional.app/Contents/vmoptions.txt

默認情況下的啓動配置如下。

-noverify
-javaagent:BurpSuiteLoader.jar
-XX:MaxRAMPercentage=50
-include-options user.vmoptions

然後我們,修改為如下的形式。

-noverify
-javaagent:BurpSuiteLoader.jar
-javaagent:BurpSuiteCn.jar
-Dfile.encoding=utf-8
-XX:MaxRAMPercentage=50
-include-options user.vmoptions

選擇自己想要的啓動方式保存並退出,如下所示。
在這裏插入圖片描述

2.1.3 激活 Burpsuite

如果之前你沒有激活過 Burpsuite 的話,那麼第一次可能需要提示輸入許可證秘鑰,運行如下命令打開註冊機。

chmod +x /Applications/Burp\ Suite\ Professional.app/Contents/java/app/license_key.sh && sh /Applications/Burp\ Suite\ Professional.app/Contents/java/app/license_key.sh

首先將註冊機的【License】複製粘貼到 BP 的許可證秘鑰框中,然後點擊【下一步】,如下圖所示。
在這裏插入圖片描述
接着點擊【手動激活】,如下圖所示。
在這裏插入圖片描述
點擊註冊機裏面的【輔助請求】按鈕,將信息粘貼到註冊機中的 【Activation Request】中,此時註冊機會在【Activation Response】生成返回信息,然後將這個返回信息粘貼到 BP 中,點擊【粘貼響應】按鈕即可,最後點擊【下一個】即可。
在這裏插入圖片描述
在這裏插入圖片描述
啓動成功後,頁面大概是下面這樣子的。
在這裏插入圖片描述

參考文檔鏈接:Burpsuite安裝與激活

Xposed+JustTrustMe使用

首先,下載Xposed+JustTrustMe和安卓模擬器(如夜神、網易木木Android模擬器)。然後我們在Android模擬器上安裝剛才下載的Xposed和JustTrustMe。
在這裏插入圖片描述
為了防止在真機上手機變磚的問題,我們在模擬器上進行實驗。安裝Xposed,初始化界面會有一些警告。
在這裏插入圖片描述
安裝的時候請確保模擬器已經Root。
在這裏插入圖片描述
重啓後打開Xposed發現激活成功,如下圖所示。
在這裏插入圖片描述
點擊桌面的左上角,然後點擊模塊,勾選JustTrustME重啓手機開啓JustTrustME。
在這裏插入圖片描述
最後,在客户端安裝HTTPS安全證書即可。

參考:
Fiddler+夜神模擬器+xposed+justTrustMe手機抓包

user avatar
0 位用戶收藏了這個故事!

發佈 評論

Some HTML is okay.