開發與維運

網站與APP抓包分析2 分析方法案例

網站與APP抓包分析2 分析方法案例

關鍵詞:網站、APP、數據交互、資源加載、流程分析

1、分析過程

1.1、分析維度

交互分析重點:資源分佈、訪問調度、重要接口、用戶信息、質量上報。
問題處理流程:發現異常、問題復現、分段分界、問題定位、優化處理。
image.png

1.2、關鍵接口與資源加載方式分析方式

image.png

1.3、資源分佈與用戶訪問流向統計

目的:APP資源分佈位置與用戶訪問流量的方向
特徵:DNS解析記錄中包含有cdn或明顯資源標識(例如img、mp3等)的域名及其指向的內容源。
以“今日頭條APP”為例:
其中域名“*tt.bytecdn.cn”為“字節跳動CDN”的域名,其中資源基本上為頁面圖片圖標,其解析地址部分在四川移動,有部分解析到了重慶移動。
其中域名“.pstatp.com”與“ .swcdn-tos.pstatp.com”為今日頭條的資源下載域名,其中大部分域名解析首地址歸屬為四川移動,有部分解析至其他省份。
DNS解析記錄:
image.png
統計域名歸屬:
image.png

1.4、重要接口與數據交互分析

目的:APP中主要的接口,即關鍵域名及其相關的URL構造規則。
特徵:有明顯具有相關特徵(例如資源信息、用戶信息等)返回值,或資源加載相關信息的請求。
重要接口類型分析:
(1)用戶登錄接口:
用戶登錄過程,包括請求發起、鑑權、基礎信息加載等。由於網絡安全需要,通常為加密內容,甚至拒絕HTTPS代理方式登錄。
(2)域名解析方式(DNS接口):
一般APP的域名解析方式為標準DNS協議,大部分APP採用標準DNS協議與HttpDNS協議相結合的方式進行域名解析,其中HttpDNS的構成由廠商自行定義,格式各異。通常特徵為其中包含域名與IP的映射關係。
(3)資源調度接口(或資源信息接口):
APP中資源列表及其中資源信息或頁面所顯示的內容的信息。其中包含用戶請求的加載方式和數據交互過程中的中間件數據層信息。可通過該接口調取APP中對應的資源信息(例如歌曲或視頻的列表)。
(4)資源加載接口:
資源加載請求的構造方式以及資源請求列表。通常包含資源 特徵(例如img、mp4等),或URL域名部分包含IP地址。用戶對此類URL發起訪問來下載資源。
(5)用戶信息與事件上報接口:
用戶信息(賬號、手機號碼、IMEI號碼、IP地址等)與用戶請求的關聯方式,用戶訪問、視頻播放、資源下載等事件的信息上報(一般在URL中包含有相關字段信息或ID)。

1.4.1、APP用戶登錄接口

用戶登錄方式:通常APP將支持多種登錄方式。
(1)賬號密碼登錄
此為較常規的客戶端登錄方式,採用此類登錄方式的用戶整逐步減少。用戶發起登錄請求,調用相關頁面與鑑權接口,上傳相關信息。此過程中密碼信息需進行加密處理。
(2)短信驗證碼登錄
此為目前比較常用的登錄方式。用戶發起登錄流程,上傳手機號碼驗證其準確性後,客戶端將調用短信驗證服務(包含自主驗證或採用三方服務方式),驗證成功則加載用戶信息。
(3)三方賬號代登錄
較為常見的代登錄方式支持包括:微信、QQ、微博等賬號的代登錄。
此類登錄過程通常為由代登錄服務提供方提供專有代登錄API接口,APP通過申請獲得對應的APPID,當客戶端發起登錄請求時,首先拉起本機上的相關應用(部分服務不需要再本機安裝對應APP,則無需此過程),獲取授權碼(code),客戶端將授權碼與本應用在服務提供方的註冊APPID發送至代登錄認證服務端,然後通過多次的鑑權交互過程,獲得登錄認證。
根據APP設定不同,登錄成功後進行不同的設定,例如部分APP在鑑權成功後直接授權用戶訪問,不在進行其他操作;部分APP則將代登錄授權信息與自有數據庫中用戶信息綁定(若無賬號則強制用戶註冊),後切換為自有註冊賬號進行應用操作。

1.4.2、APP資源信息接口示例

以電商APP為例,在頁面所顯示的信息加載過程中,服務端將通過Json等方式向客戶端傳送商品相關列表信息,客戶端通過該列表中的商品基礎信息在頁面顯示,當用戶需要進一步獲取相關信息時,可通過該列表中的唯一標識(例如商品ID),構造URL,訪問詳細信息。
以“蘇寧易購APP”為例:
image.png

1.4.3、APP資源加載接口示例

目的:資源加載或調度方式與接口(商品詳細信息頁面加載)。
特徵:包含有資源信息、URL或資源URL的構造方式。例如構造URL所需的關鍵字段信息等。根據APP實現的邏輯結構不同,資源信息列表與資源加載調度接口可能我同一過程,也可能分為多個步驟。
以“蘇寧易購APP”為例:
image.png
(1)如示例:當用戶觸發資源請求時,以商品ID等信息為參數,根據固有規則形成URL,用以加載相關信息頁面。
(2)對於圖片視頻等資源,根據APP的用途不同,加載方式存在較大差異,例如此示例中APP為電商類,其中視頻和圖片皆為輔助內容顯示作用,其URL均根據以固定方式將URL寫在相關請求的返回值中。

1.4.4、APP資源加載接口示例2

目的:資源加載或調度方式與接口(視頻或圖片信息加載)。
特徵:包含有資源信息、URL或資源URL的構造方式。例如構造URL所需的關鍵字段信息等。根據APP實現的邏輯結構不同,資源信息列表與資源加載調度接口可能我同一過程,也可能分為多個步驟。
以電商類APP“蘇寧易購”為例:
通過商品信息請求的返回值中返回的信息指定URL。
image.png
加載獲得相關的圖片或視頻信息:
image.png

1.4.5、APP用戶信息、質量信息、事件上報接口示例

應用客戶端通常會通過某些特定接口對客戶端的質量信息、用戶信息、用戶操作事件等內容進行回傳,用以作為質量分析或用戶行為分析的依據。
示例:“QQ音樂APP”調用內置瀏覽器的性能測試接口進行診斷測速:
image.png
其中上傳內容包括:用戶位置信息、用戶IP地址、本地DNS節點IP、客戶端操作系統、網速等。

1.5、不同環境下的差異分析

image.png

2、案例

(1)目標:獲取咪咕閱讀APP資源列表與用戶請求調度過程(部分)
(2)問題解析:即需要分析用戶是通過什麼流程從打開APP一步一步到閱讀書籍內容。該過程中經過哪些步驟,這些步驟中涉及到哪些數據交互,其中可以為我所用的信息有哪些(例如頁面構成,調度信息(告訴客戶端下一步該怎麼做)、書籍列表(可以統計相關內容作為資源庫)、書籍請求鏈接(可以用來統計用戶行為或閱讀偏好))。
(3)通常APP數據交互過程:用戶從打開APP(過程略)→選擇進入數據分類頁面(該頁面信息如何加載) →選擇一類圖書(用戶如何進入分類頁面) →選擇一本圖書(用戶如何進入該圖書的信息詳情) →開始閱讀(用戶如何從信息詳情跳轉進入數據內容)。
(4)交互分析:
清空手機緩存,打開頁面執行加載,抓取過程中的數據包。注意抓包範圍不宜過大(頁面加載之前開始,到加載完成停止),不宜太長,以免請求過多難以區分有用信息。
image.png
根據碼流內容逐一尋找有用信息,排除圖片等請求(URL中帶有jpg等字樣的內容),注意jsp類文件。打開相關包(Fllow HTTP Strem),查看其中內容。(wireshark中藍紅色字體為請求、藍色字體為響應)。
image.png
根據數據交互過程層層向下,梳理數據交互流程,分析每步URL的構造方式和文件位置。
1、書籍分類信息。
2、該類型中書籍列表:該列表中至少應包含書籍名稱或ID等重要信息。
3、數據詳情頁面:該頁面中包含有大量書籍相關屬性信息。
一般此類按照類型層層向下鑽去的請求中,每一層級的鏈接通常是以其ID作為參數,根據固定的規則構造URL。
通常越接近底層的信息列表中包含有越多的信息。
一般資源加載過程為通過其ID來進行資源獲取。即資源獲取請求可能為固定格式的URL,以不同的資源ID作為參數。
資源中帶有的屬性或頁面的功能越多,頁面越複雜重要信息越難以發現。需剔除其頁面樣式等無關內容的信息。
image.png
image.png
image.png
(5)APP分析報告資源調度信息:

image.png

3、備註

1、分析過程中,部分質量問題定界需關注底層通信協議,其他分析主要注意其信息的交互過程。
2、由於各ICP的安全防護質量不一方法各異,需採用多種工具多種方式結合分析;有部分應用安全級別較高(例如騰訊旗下應用安全等級較高),採用公共的代理方式抓包工具可能無法解析。
3、根據實際需求,從不同的角度和思路分析解決問題。重點關注資源調度和用戶信息與其行為的關聯。
4、不同類型APP由於其功能和邏輯結構不同,其數據交互方式存在差異;同類APP由於功能類似,可以相互印證參考。
5、由於HTTPS協議加密,部分內容無法解析,可通過網頁端的應用,利用同一應用中某些內容的共通性,用瀏覽器內置調試工具對分析內容進行驗證。
6、本文所有案例均來自多年之前,現已無法用於實際分析。上述方案僅供技術交流,請勿隨意嘗試解析他人網頁或APP。

Leave a Reply

Your email address will not be published. Required fields are marked *