溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

使用Charles對Android App的https請求進(jìn)行抓包

發(fā)布時(shí)間:2020-06-19 09:48:59 來源:網(wǎng)絡(luò) 閱讀:3937 作者:羅伊德666 欄目:大數(shù)據(jù)

本文背景

公司新項(xiàng)目要求抓取目前市面上一些熱門App的數(shù)據(jù),經(jīng)過研究發(fā)現(xiàn)很多App的網(wǎng)絡(luò)請求都使用https進(jìn)行數(shù)據(jù)傳輸,這樣問題就來了,http使用明文傳輸所有請求都能攔截到,而https請求無法攔截。
所以這里我們要使用Charles來抓取https,但是筆者看了網(wǎng)上很多使用iOS設(shè)備進(jìn)行抓取https的文章,經(jīng)測試iOS8/10/11均無法進(jìn)行正常抓取,即使信任證書也不行。
經(jīng)過筆者的不斷嘗試,終于在Android5.0上成功抓取了https。研究后發(fā)現(xiàn),在Android7.0以下可以正常使用Charles抓取。Android7.0以上應(yīng)該是默認(rèn)屏蔽了此種方法。

Charles安裝

  • 這里給出官網(wǎng)下載的鏈接
  • 如果需要破解文件點(diǎn)擊這里
  • 安裝破解過程可以查看這篇文章

Charles配置

配置電腦端的根證書
  1. 打開Charles,我這里使用的是v4.2.5版本:
    使用Charles對Android App的https請求進(jìn)行抓包

  2. 安裝根證書
    使用Charles對Android App的https請求進(jìn)行抓包

  3. Mac需要設(shè)置信任證書

    1. 安裝后會(huì)彈出鑰匙串訪問界面,如圖:
      使用Charles對Android App的https請求進(jìn)行抓包

    2. 雙擊證書,彈出證書詳細(xì)界面,點(diǎn)擊『信任』選項(xiàng),然后將所有設(shè)置為始終信任,如圖:
      使用Charles對Android App的https請求進(jìn)行抓包
在手機(jī)端配置根證書
  1. 在電腦端選擇安裝移動(dòng)端的證書:
    使用Charles對Android App的https請求進(jìn)行抓包

  2. 選擇后會(huì)顯示IP與端口號,用于手機(jī)設(shè)置http代理:
    使用Charles對Android App的https請求進(jìn)行抓包

  3. 手機(jī)的網(wǎng)絡(luò)上設(shè)置成電腦的http代理:
    此時(shí)必須保證手機(jī)和電腦在同一網(wǎng)絡(luò),并且手機(jī)可以訪問電腦的ip與端口
    使用Charles對Android App的https請求進(jìn)行抓包

  4. 設(shè)置完成后訪問網(wǎng)絡(luò)時(shí),服務(wù)端會(huì)彈出提示,點(diǎn)擊Allow(同意連接):
    使用Charles對Android App的https請求進(jìn)行抓包

  5. 手機(jī)瀏覽器(筆者使用Chrome)訪問chls.pro/ssl,下載證書并安裝(證書名任意):
    使用Charles對Android App的https請求進(jìn)行抓包
配置電腦端的抓取規(guī)則
  1. 進(jìn)入Charles的SSL代理設(shè)置:
    使用Charles對Android App的https請求進(jìn)行抓包

2.勾上啟動(dòng)SSL代理,并添加一個(gè)抓取規(guī)則,比如這里加上一個(gè)抓取所有https(443端口)的請求:
使用Charles對Android App的https請求進(jìn)行抓包

3.此時(shí)手機(jī)上打開https請求的應(yīng)用,應(yīng)該就可以正常看到https請求的數(shù)據(jù)了:如圖:
使用Charles對Android App的https請求進(jìn)行抓包

常見問題

1. 配置好后無法打開APP

在我們抓取時(shí)碰到個(gè)別APP在配置代理后無法打開,這個(gè)主要是因?yàn)樵揂PP做了防止抓取處理,比如校驗(yàn)https的證書是否合法等,這種解決方法可以通過反編譯APP,查看源碼解決,難度較大。

2. 抓取到的內(nèi)容為亂碼

有的APP為了防止抓取,在返回的內(nèi)容上做了層加密,所以從Charles上看到的內(nèi)容是亂碼。這種情況下也只能反編譯APP,研究其加密解密算法進(jìn)行解密。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI