1. 程式人生 > >Android抓包方法(轉)

Android抓包方法(轉)

工作 鎖屏 缺點 traffic 連接 www. info 服務 電腦ip

Android抓包方法(轉)

作者:Findyou

地址:http://www.cnblogs.com/findyou/p/3491014.html

前言:

做前端測試,基本要求會抓包,會分析請求數據包,查看接口是否調用正確,數據返回是否正確,問題產生是定位根本原因等。

不管是之前做HTML5手機項目測試,還是現在的企郵app測試,經常需要抓包,做前端開發基本第一時間會想到Fiddler,的確Fiddler比較強大方便,本文主要以Android手機為例介紹通過Fiddler抓手機數據包,Iphone、Ipad、Win Phone等可設代理的手機,也均可用此方法。


[目錄]

1、抓包原理

2、方法優劣

3、準備工作

4、實例

5、其他


1、抓包原理

Fiddler是類似代理服務器的形式工作,它能夠記錄所有你的電腦和互聯網之間的http(S)通訊,可以查看、修改所有的“進出”的數據使用代理地址:127.0.0.1, 默認端口:8888。打開Fiddler會自動設置代理,正常退出會自動註銷代理,非正常退出上不了網,重起一次Fiddler,或直接在IE裏取消代理即可。

技術分享圖片

技術分享圖片

2、方法優劣

[優點]: 1).Fiddler操作簡單、方便、功能強大 2).能實時抓包,可模擬修改請求 2).只需要手機支持代理即可 3).適用廣,安卓、Iphone、Ipad、WinPhone等支持代理手機均適用

[缺點]: 1).電腦需要安裝Fiddler 2).測試手機需要支持Wifi 3).測試手機與電腦需要同一網絡 4).所測APP需支持代理

3、準備工作

1).檢查電腦網絡連接

a.使用同網絡內的另一臺電腦)ing本機,檢查是否連通正常。

原因:我之前測HTML5項目就發現Fiddler代理抓不到包,手機設置均正確,後發現是網絡內找不到本機,本機防火墻設置問題。

另外需要關註是否同一網絡,如果手機GPRS等上網,你在局域網內抓包...哥覺得你可以改行了...

(約定:後文所述Fiddler所在電腦均稱為本機)

2).Fiddler安裝

a.下載地址: http://fiddler2.com/get-fiddler

b.安裝:省略(下一步...下一步即可)


3).Fiddler配置

a.允許遠程計算機連接Fiddler

菜單:Tools-> Fiddler Options->Connections,勾選"Allow remote computers to connect"

技術分享圖片

註:8888為默認端口號,可修改,但需註意兩點,一是本機空閑端口,二是手機代理設置時端口要一致。

b.配置可捕獲HTTPS請求(*不需要捕獲HTTPS,則忽略此步*)

菜單:Tools-> Fiddler Options->Connections,勾選"Capture HTTPS CONNECTs"後

勾選"Decrypt HTTPS traffic"、"Ignore server certificate errors"

技術分享圖片

註1:勾選項英文不認識,請Google,不另做解釋

4).手機安裝HTTPS證書(*不需要捕獲HTTPS,則忽略此步*)

a.首先確定Fiddler所在電腦的IP地址:例:192.168.8.8

b.打開被測手機瀏覽器,訪問http://192.168.8.8:8888,點"FiddlerRoot certificate" 然後安裝證書

註:Iphone、Ipad安裝則很簡單,點擊安裝即可。Android安裝稍微麻煩點,則需要先設置手機鎖屏密碼、PIN碼,安裝證書時會提示,按步驟走即可。


4、實例

ThinkDrive抓包實例

一期測試時,涉汲到APP安全測試,因此需要查看傳輸數據是否存在明文密碼等。

1).開啟Fiddler,確定本機IP、Fiddler端口號

本機IP:192.168.8.8

Fiddler端口號:8888

技術分享圖片

技術分享圖片

2).手機連接本機所在同網絡Wifi,設置代理

a.代理主機名:Fiddler所在電腦IP

b.代理服務器端口: Fiddler使用的端口

技術分享圖片

3).APP操作,生成請求數據

a.例:登錄

技術分享圖片

技術分享圖片

b.例:退出登錄

技術分享圖片

4).分析Fiddler抓包數據

a.例:登錄請求分析

1).雙擊查看登錄請求,選擇WebForms或JSON等其他類標簽,查看請求參數值,對照接口文檔及你想要測試的點分析,請求是否正確,查看返回數據是否正確。

2).同帳號,不同密碼;不同帳號,同密碼等測試用例,測試多次登錄後發現,密碼僅為MD5加密,沒有對密碼進行很好的加密傳輸

3).分析存在以下問題:

問題1:帳號密碼采用http傳輸,帳號與密碼(MD5值)局域網可以捕獲;

問題2:密碼雖采用MD5加密,但傳輸未加密,簡單密碼可以在線解密(圖中密碼在線解密不到1秒:123qwe); 問題3:密碼不解密也一樣可以登錄,通過A帳號在app登錄,再用sniffer得到的B 帳號與密碼(MD5值),使用Fiddler修改A帳號的請求完成B帳號在APP登錄。

技術分享圖片

註1:Fiddler功能使用,請Google或百度,此處不詳說

註2:以上實例僅為參考,具體測試,以所相關業務及測試目標為導向進行測試分析。

5、其他

本文雖主要對Android手機抓包舉例,但其目的是說明,不管是電腦,還是手機,還是其他上網終端,都可以通過代理的方式來抓包(HTTS、HTTPS)。


Android抓包方法(轉)