使用Fiddler抓取移動(dòng)應(yīng)用數(shù)據(jù)包

一.什么是fiddler扁藕?

Fiddler是一款常用的http協(xié)議的抓包工具,它的原理是在本機(jī)開啟一個(gè)http的代理服務(wù)器荤崇,通過它會(huì)轉(zhuǎn)發(fā)所有的http請(qǐng)求和響應(yīng)典鸡,可以對(duì)手機(jī)的一些應(yīng)用進(jìn)行http抓包.

優(yōu)點(diǎn):免費(fèi)、免費(fèi)蛛枚、免費(fèi)

缺點(diǎn):

1.僅支持windows系統(tǒng)

2.搜索特定url時(shí)耗時(shí)較長(zhǎng)(charles可以按路徑劃分請(qǐng)求)

如果是osx系統(tǒng)請(qǐng)使用青花瓷(charles)

二.fiddler安裝地址

電腦百度:一般默認(rèn)第一個(gè)就是fiddler下載地址


fiddler下載地址

官網(wǎng):https://www.telerik.com/fiddler

備注:1.選擇對(duì)應(yīng)電腦系統(tǒng)的版本

?????????? 2.選擇你需要下載的版本

三.通過fiddler抓取手機(jī)APP應(yīng)用的數(shù)據(jù)包

1.前置條件:手機(jī)的IP地址與電腦的IP地址需要在同一個(gè)網(wǎng)段可以滿足(一般使用同一wifi即可)

2.下載安裝fiddler并打開(fiddler默認(rèn)設(shè)置先不更改)

3.fiddler一級(jí)工具欄--tools--fiddler options--connections--將端口號(hào)設(shè)置為8888--OK

4.勾選“allow remote computers to connect”(允許遠(yuǎn)程設(shè)備連接)


允許外部設(shè)備連接

5.fiddler抓取https請(qǐng)求

fiddler一級(jí)工具欄--tools--fiddler options--HTTPS-勾選“capture https connects”--OK

??? 下拉菜單:

??? a.from remote clients only:僅抓取外部應(yīng)用的數(shù)據(jù)包

??? b.from broswers only:僅抓取電腦網(wǎng)頁的數(shù)據(jù)包

? ? c.from all processes:抓取所有的數(shù)據(jù)包

? ? 若僅抓移動(dòng)端應(yīng)用的包谅海,建議選擇a選項(xiàng)

??? ignore server certificateerrors(unsafe):忽略服務(wù)器證書

?? 不選擇此項(xiàng),請(qǐng)求部分url會(huì)彈各種彈窗蹦浦,建議勾選


抓取https包時(shí)fiddler的設(shè)置

備注:完成之后需要重新啟動(dòng)fiddler

6.手機(jī)端設(shè)置

確認(rèn)電腦的ip地址:將鼠標(biāo)放置于fiddler右上角“online”上方扭吁,查看彈窗,確認(rèn)電腦ip地址


查看ip地址

(1):iPhone設(shè)備

設(shè)置--無線局域網(wǎng)--點(diǎn)擊目前連接的wifi--上劃到底--HTTP代理--配置代理--手動(dòng)

服務(wù)器:電腦的ip地址

端口:8888(與步驟3設(shè)置的端口號(hào)一致)

存儲(chǔ)(此處以ios11設(shè)置為例)

iPhone設(shè)備設(shè)置手機(jī)代理

(2):安卓設(shè)備

設(shè)置-wlan-進(jìn)入網(wǎng)絡(luò)詳情頁(部分設(shè)備長(zhǎng)按進(jìn)入/部分設(shè)備點(diǎn)擊右側(cè)按鈕進(jìn)入)-代理-手動(dòng)

服務(wù)器:電腦的ip地址

端口:8888(與步驟3設(shè)置的端口號(hào)一致)

保存


安卓設(shè)備設(shè)置手機(jī)代理

(3)安裝fiddler證書

建議使用系統(tǒng)自帶的瀏覽器安裝證書盲镶,iPhone:safari 安卓:系統(tǒng)自帶瀏覽器

網(wǎng)址頁輸入:“IP地址”+“:”+“8888”? 進(jìn)入如下界面


手機(jī)安裝fiddler證書

點(diǎn)擊:FIddlerRoot certficate--保存并安裝證書

備注:

iPhone:由于ios11加入了部分限制侥袜,有2處需要驗(yàn)證

a.設(shè)置--通用--描述文件--驗(yàn)證DO_NOT_TRUST_FiddlerRoot

b.設(shè)置--通用--關(guān)于本機(jī)--證書信任設(shè)置--信任DO_NOT_TRUST_FiddlerRoot

安卓:安卓7.0以上設(shè)備無法抓取https數(shù)據(jù)包

原因:Android N之后為了增強(qiáng)系統(tǒng)的安全性,不再信任用戶導(dǎo)入的CA根證書

解決方法:

a.使用工具(ApkTool/ApkIDE)

b.將下載下來的apk文件使用工具軟件反編譯

c.打開反編譯的文件夾徒河,找到res/xml目錄系馆,查找network_security_config.xml文件

d.如果沒有就自己新建一個(gè),使用UTF-8無BOM的編碼顽照,內(nèi)容為:


解決安卓7.0無法抓包的問題

7.判斷代理是否設(shè)置成功

打開fiddler-打開任意一個(gè)應(yīng)用-查看fiddler中是否有請(qǐng)求

三.客戶端請(qǐng)求

抓包本質(zhì)上是查看客戶端與服務(wù)器之間交互的過程和結(jié)果

1.請(qǐng)求方式:常用的有g(shù)et請(qǐng)求與post請(qǐng)求

兩者之間的區(qū)別


get與post之間的區(qū)別

2.url組成

url組成:協(xié)議+域名+端口+虛擬目錄+文件名+參數(shù)+錨

{協(xié)議}://:{端口號(hào)}/{路徑}/{文件}?{參數(shù)}#{錨}

示例A ? https://app.baidu.com/x/v2/splash?access_key=5bb8b7647b960b2506d1c55f40e6b1b5&actionKey=appkey&appkey=27eb53fc9058f8c3&build=6633&channel=appstore&device=phone&height=2208&mobi_app=iphone&platform=ios&sign=380eaeb889dbf4f1e1a9c1d59a4854f0&ts=1523966281&ver=41439258780710287502018250&width=1242

常用協(xié)議:http由蘑、https (示例中為: https:)

域名:app.bilibili.com是域名,可使用ip地址作為域名

端口:跟在域名之后的是端口代兵,域名與端口之間由“:”分開(非必須尼酿,省略則使用默認(rèn)端口)(示例中省略)

虛擬目錄:從域名后的第一個(gè)“/”開始到最后一個(gè)“/”為止(非必須)(示例中為:/x/v2/)

文件名:從域名后的最后一個(gè)“/”開始到“?”為止(非必須植影,省略則使用默認(rèn)文件名)(示例中為:splash)

參數(shù):從“裳擎?”開始到“#”為止之間的部分(可有多個(gè)參數(shù),參數(shù)與參數(shù)之間用“&”拼接)(示例中為:思币?后所有內(nèi)容)

錨:從“#”開始到最后鹿响,都是錨部分(非必須)(示例中無)

3.常用的協(xié)議:http/https


http與https的區(qū)別

也可參考文章:https://www.zhihu.com/question/19577317

四羡微、fiddler界面

(1)Static:可以清晰的看到客戶端請(qǐng)求發(fā)出的時(shí)間、請(qǐng)求耗時(shí)惶我、請(qǐng)求資源的大小


static

(2)Inspector:常用來定位問題

inspectors tab下有很多查看request或者response的消息妈倔。?

raw?tab可以查看完整的消息

headers tab只查看消息中的header

WebForms tab以直觀的界面查看Body值和QueryString值

Cookies tab以直觀的界面查看header中的cookie值

定位問題舉例:

客戶端有一個(gè)視頻的封面沒有展示,但是我們通過接口可以看到接口其實(shí)是有返回對(duì)應(yīng)的圖片(“cover”字段后有對(duì)應(yīng)的圖片)

問:這是誰的鍋绸贡?

思路:

1.這個(gè)圖片服務(wù)端有返回的盯蝴,客戶端沒有展示出來,是不是客戶端的問題听怕?

2.我可以通過瀏覽器去查看這個(gè)圖片捧挺,看下它到底可不可以正常打開?

3.這個(gè)圖片的格式是不是客戶端不支持啊


根據(jù)接口請(qǐng)求與返回判斷定位問題

(3)AutoResponder:重定向

字面意思:重新設(shè)定方向??????????????? 正常:a->b 改變:a->c

通俗理解:請(qǐng)求一個(gè)接口把服務(wù)端返回值改成你自己希望的返回值尿瞭,通過配置對(duì)應(yīng)的服務(wù)端返回文件來實(shí)現(xiàn)

目的:不通過修改數(shù)據(jù)庫或其它方式闽烙,短時(shí)間內(nèi)完成測(cè)試場(chǎng)景的覆蓋

示例:

caseA:視頻沒有封面時(shí),如何展示

思路:

1.確定是哪個(gè)接口

2.確定接口返回的數(shù)據(jù)筷厘,哪個(gè)字段對(duì)應(yīng)封面

3.修改返回的數(shù)據(jù)

方式:

1.在fiddler請(qǐng)求列表中找到對(duì)應(yīng)url--點(diǎn)擊選中


2.切換AutoResponder?tab--點(diǎn)擊add Rule


3.在底部 Rule Editor中--點(diǎn)擊"test..."--將url“鸣峭?”后部分全部刪除--將前方的“exact:”改為“regex:”-save changes


原因:由于每次請(qǐng)求時(shí)的參數(shù)都有變更 regex:正則匹配 exact:完全匹配(可能導(dǎo)致下次本次修改不生效)

本步目的:確定你想要修改哪個(gè)請(qǐng)求的返回

4.先查看此請(qǐng)求正常的返回值(切換insepectors tab-查看底部response)


5.復(fù)制返回文件到一個(gè)新的文件中

實(shí)現(xiàn)步驟:

a.查看底部response-切換textviewtab

b.點(diǎn)擊數(shù)據(jù)區(qū)域-ctrl+a全選并復(fù)制

c.新建一個(gè)文件--將文件復(fù)制到新文件中


備注:新文件的格式要與接口返回?cái)?shù)據(jù)格式一致(常見有xml、json等)

d.找到文件對(duì)應(yīng)字段酥艳,修改字段值(此處將cover的值置為空)


6.點(diǎn)擊 Rule Editor第2個(gè)下拉菜單--下拉--點(diǎn)擊find a file--選擇新文件的保存路徑


7.點(diǎn)擊save & ensure rules 下次再次請(qǐng)求此接口就會(huì)生效


完成偽造本地?cái)?shù)據(jù)

(4)Filters

設(shè)置會(huì)話過濾

以移動(dòng)端測(cè)試為例摊溶,fiddler會(huì)監(jiān)聽手機(jī)發(fā)出的所有http請(qǐng)求,列表中請(qǐng)求過多充石,不容易查找所需的請(qǐng)求莫换,此時(shí)可以設(shè)置過濾

首先要確定:我只需要查看的APP發(fā)出的哪些http請(qǐng)求

舉例:

一個(gè)APP發(fā)出的請(qǐng)求有app.baidu.com api.baidu.com message.baidu.com.....

此時(shí)可以使用 通配符+其他模糊匹配域名 如:此處可使用 *.baidu.com

其他固定的域名就直接寫上,注意:域名與域名之間用“骤铃;”分隔

在fiddler上的操作

1.切換Filters tab-在Hosts區(qū)域操作


何處設(shè)置過濾

2.第一個(gè)下拉菜單選擇“No Zone Filter”--第二個(gè)下拉菜單選擇“Show only the following Hosts”

第二個(gè)下拉菜單中的內(nèi)容:

No Host filter:不設(shè)置域名過濾

Hide the following hosts:隱藏下方域名

show only the following hosts:僅展示下方的域名

flag the following hosts:標(biāo)記下方域名(fiddler4是黑色加粗顯示域名)

3.勾選左上角“use filters”(判斷過濾是否生效(filters tab顯示綠色對(duì)勾))


過濾生效

(5)fiddler工具欄


工具欄

(6)設(shè)置斷點(diǎn)修改request

修改請(qǐng)求參數(shù)

方法1:打開fiddler 點(diǎn)擊rules-> automatic breakpoint? ->before requests(不長(zhǎng)使用拉岁,無針對(duì)性)

備注:此操作之后,后續(xù)所有的請(qǐng)求均會(huì)被中斷

取消斷點(diǎn):打開fiddler點(diǎn)擊rules-> automatic breakpoint? ->disabled


修改請(qǐng)求方法1

方法2:在(5)中命令行工具欄輸入 bpu+指定url? 然后輸入回車

僅可攔截指定url請(qǐng)求

取消斷點(diǎn):僅輸入bpu 然后輸入回車

(7)顯示ip地址

默認(rèn)fiddler是不顯示此列

應(yīng)用場(chǎng)景:測(cè)試過程中經(jīng)常會(huì)切換環(huán)境(測(cè)試環(huán)境惰爬、UAT喊暖、預(yù)發(fā)....),可以根據(jù)server ip確認(rèn)環(huán)境是否生效

方法:

1.Ctrl+r打開fiddler scripteditor

2.Crtl+f搜索輸入static function Main()

3.在如下位置加入一段代碼:

FiddlerObject.UI.lvSessions.AddBoundColumn("ServerIP", 120, "X-HostIP");

4.保存

5.重新打開fiddler 可看到severip行


顯示ip地址

(8)模擬弱網(wǎng)

一撕瞧、fiddler自帶(不是特別好用陵叽,貴在精確)

備注:在原有響應(yīng)時(shí)間的基礎(chǔ)上增加時(shí)長(zhǎng)

方法:

1.Ctrl+r打開fiddler scripteditor

2.Crtl+f搜索輸入simulate 找到如下代碼:


找到對(duì)應(yīng)位置


修改時(shí)長(zhǎng)(單位毫秒)

二、使用iPhone自身的開發(fā)者選項(xiàng)

如何出現(xiàn)開發(fā)者選項(xiàng)?(以xcode9為例)

1.手機(jī)設(shè)備連接macxcode

2.Xcode -> Windows->Device and Simulators

3.選擇當(dāng)前設(shè)備->右鍵彈出選擇菜單->選擇Show Provisioning Profiles

4.拔掉數(shù)據(jù)線丛版,打開設(shè)置可以看到“開發(fā)者”選項(xiàng)

模擬網(wǎng)絡(luò)

1.開發(fā)者->NETWORKING->Network Link Conditioner

2.profiles常用列表項(xiàng)說明

100%Loss?????? ? ? ? ?? 全丟包

3G?????????????????? ? ? ? ? ? 3G網(wǎng)絡(luò)

DSL?????????????????????????? 電話線上網(wǎng)

Edge????????????????????????? 2G網(wǎng)絡(luò)

High Latency??????????? ? DNS高延遲

Very Bad Network????? 網(wǎng)絡(luò)狀況不穩(wěn)定

Wifi????????????????????????????? Wifi網(wǎng)絡(luò)

3.選擇對(duì)應(yīng)的網(wǎng)絡(luò)狀態(tài)-Enable開關(guān)打開(綠色)

4.此時(shí)手機(jī)的網(wǎng)絡(luò)速度就被改變了

備注:

個(gè)人偏愛:Edge/Very Bad Network 當(dāng)弱網(wǎng)使用

?????????????????? 3G:網(wǎng)絡(luò)相對(duì)正常

?????????????????? wifi:相對(duì)較好的網(wǎng)絡(luò)環(huán)境(跟wifi本身相關(guān))

不模擬網(wǎng)絡(luò)環(huán)境時(shí)巩掺,一定要記得把Enable開關(guān)關(guān)閉!R称琛胖替!否則忘了會(huì)很尷尬


最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子独令,更是在濱河造成了極大的恐慌端朵,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,651評(píng)論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件记焊,死亡現(xiàn)場(chǎng)離奇詭異逸月,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)遍膜,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,468評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來瓤湘,“玉大人瓢颅,你說我怎么就攤上這事〕谒担” “怎么了挽懦?”我有些...
    開封第一講書人閱讀 162,931評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)木人。 經(jīng)常有香客問我信柿,道長(zhǎng),這世上最難降的妖魔是什么醒第? 我笑而不...
    開封第一講書人閱讀 58,218評(píng)論 1 292
  • 正文 為了忘掉前任渔嚷,我火速辦了婚禮,結(jié)果婚禮上稠曼,老公的妹妹穿的比我還像新娘形病。我一直安慰自己,他們只是感情好霞幅,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,234評(píng)論 6 388
  • 文/花漫 我一把揭開白布漠吻。 她就那樣靜靜地躺著,像睡著了一般司恳。 火紅的嫁衣襯著肌膚如雪途乃。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,198評(píng)論 1 299
  • 那天扔傅,我揣著相機(jī)與錄音耍共,去河邊找鬼。 笑死铅鲤,一個(gè)胖子當(dāng)著我的面吹牛划提,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播邢享,決...
    沈念sama閱讀 40,084評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼鹏往,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起伊履,我...
    開封第一講書人閱讀 38,926評(píng)論 0 274
  • 序言:老撾萬榮一對(duì)情侶失蹤韩容,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后唐瀑,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體群凶,經(jīng)...
    沈念sama閱讀 45,341評(píng)論 1 311
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,563評(píng)論 2 333
  • 正文 我和宋清朗相戀三年哄辣,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了请梢。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,731評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡力穗,死狀恐怖毅弧,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情当窗,我是刑警寧澤够坐,帶...
    沈念sama閱讀 35,430評(píng)論 5 343
  • 正文 年R本政府宣布,位于F島的核電站崖面,受9級(jí)特大地震影響元咙,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜巫员,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,036評(píng)論 3 326
  • 文/蒙蒙 一庶香、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧疏遏,春花似錦脉课、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,676評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至戳寸,卻和暖如春呈驶,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背疫鹊。 一陣腳步聲響...
    開封第一講書人閱讀 32,829評(píng)論 1 269
  • 我被黑心中介騙來泰國(guó)打工袖瞻, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人拆吆。 一個(gè)月前我還...
    沈念sama閱讀 47,743評(píng)論 2 368
  • 正文 我出身青樓聋迎,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親枣耀。 傳聞我的和親對(duì)象是個(gè)殘疾皇子霉晕,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,629評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器牺堰,智...
    卡卡羅2017閱讀 134,652評(píng)論 18 139
  • 前言fiddler是一個(gè)很好的抓包工具拄轻,默認(rèn)是抓http請(qǐng)求的,對(duì)于pc上的https請(qǐng)求伟葫,會(huì)提示網(wǎng)頁不安全恨搓,這時(shí)...
    胖子愛豬蹄閱讀 12,476評(píng)論 4 22
  • 簡(jiǎn)介 Fiddler(中文名稱:小提琴)是一個(gè)HTTP的調(diào)試代理,以代理服務(wù)器的方式筏养,監(jiān)聽系統(tǒng)的Http網(wǎng)絡(luò)數(shù)據(jù)流...
    JxMY閱讀 1,475評(píng)論 0 11
  • Fiddler_官方網(wǎng)站Fiddler_官方文檔Fiddler_官方視頻Fiddler_官方插件1斧抱、Filddle...
    52Alice閱讀 7,744評(píng)論 0 10
  • 有人說,喜歡一個(gè)人撼玄,也許只需要一秒鐘夺姑, 我覺得,這種情況掌猛,只有在特定的情況下才會(huì)發(fā)生! 一個(gè)就是從來沒有戀愛過眉睹,聽...
    楓葉紅是豬閱讀 362評(píng)論 20 6