fiddler常用操作
標簽(空格分隔): fiddler
fidrdler抓取https請求:
fiddler是一個很好的抓包工具,但是默認的是抓取HTTP的,對於pc的https的會提示網頁不安全,這時候我們需要在瀏覽器上安裝證書;
- 一、網頁不安全:
1.用fiddler抓包時候,打開百度網頁:https://www.baidu.com
2.提示:網頁不安全
- 二、fiddler設置
1.打開菜單欄:Tools>Fiddler Options>HTTPS
2.勾選Decrypt HTTPStraffic,里面的兩個子菜單也一起勾選了
- 三、導出證書
1.點右上角Actions按鈕
2.選第二個選項,導出到桌面,此時桌面上會多一個文件:FiddlerRoot.cer,如左側圖。
- 四、導入到firefox瀏覽器
1.打開右上角瀏覽器設置》選項》高級》證書》查看證書》證書機構》導入
2.勾選文件導入
3.打開文件后,會彈出個框,勾選三個選項就完成操作啦。
如果不成功的話,就重啟瀏覽器重啟電腦就應該可以了;
證書導出的時候失敗問題:
在點Actions時候出現Export Failed:The root certificate could not be located.等等問題;
- 一、證書無法導出
1.在點Actions時候出現Export Failed:The root certificate could not be located.
- 解決辦法:
1.首先確保安裝的 Fiddler 是較新的版本,先關閉fiddler
2.下載並安裝Fiddler證書生成器
下載地址:http://www.telerik.com/docs/default-source/fiddler/addons/fiddlercertmaker.exe?sfvrsn=2
3.點Tools>Fiddler Options
4.勾選Capture HTTPS traffic
5.點Actions按鈕,Export Root Certificate Desktop按鈕導出到桌面
- 二種辦法:
刪除證書:
方法一:從fiddler里打開證書管理界面
方法二、從文件管理器輸入:certmgr.msc並回車
2.搜索之前安裝的fiddler證書,找到之后全部刪除
3.重新下載證書生成器:http://www.telerik.com/docs/default-source/fiddler/addons/fiddlercertmaker.exe?sfvrsn=2
一路傻瓜式安裝,遇到警告什么的直接忽略就行。
4.安裝好證書后,按照1.1章節Fiddler抓包1-抓firefox上https請求的瀏覽器導入證書就行了(弄好之后,重啟電腦就OK了)
只抓取APP的請求:
fiddler在抓取請求的時候,會抓取來自pc的請求,導致會話很多,那么如何把來自pc的請求過濾掉,只抓取來自APP的請求呢?
1.首先手機和電腦要保持在同一局域網段
2.電腦肯定必須裝fiddler的啦
- 一、設置
1.fiddler>Tools>Fiddler Options>Connections 勾選Allow remote computers to connect。
2.記住這里的端口號:8888,后面會用到。
- 二、查看電腦IP
1.打開cmd,輸入:ipconfig,記住這個IPv4地址。ipconfig
查看自己的IP地址:
- 三、設置代理
1.手機設置->WLAN設置->選擇該wifi,點右邊的箭頭(有的手機是長按彈出選項框)。
2.長按或者打開手機連接的WiFi,然后,在這里開啟代理:
3.IP輸入:電腦同樣的IP,端口輸入8888
4.這樣fiddler上邊就可以抓取APP的會話了;
抓取APP的https的請求
- 1.如果app都是http請求,是不需要安裝證書,能直接抓到的,如果是https請求,這時候手機就需要下載證書了。
2.打開手機瀏覽器輸入:http://******:8888 ,這個中間的host地址就是前面查到的本機地址。
3.出現如下畫面,點箭頭所指的位置,點擊安裝就可以了。
設置過濾會話
- 1.手機上設置代理后,這時候fiddler上抓到的是pc和app所有的請求,如果pc上打開網址,會很多,這時候就需要開啟過濾功能了。
2.打開fiddler>Tools>Fiddler Options>HTTPS>...from remote clients only,勾選這個選項就可以了
from all processes :抓所有的請求
from browsers only :只抓瀏覽器的請求
from non-browsers only :只抓非瀏覽器的請求
from remote clients only:只抓遠程客戶端請求
注意手機設置完代理以后,如果要恢復,記得關閉代理,不然手機無法上網!!!!;
get和post請求:
前面說了fiddler基本用法,大家可以自己行安裝和使用了,這里我們主要說說get和post請求的一些區別:
- 一、get請求
1.打開fiddler工具,然后瀏覽器輸入博客首頁地址:http://www.cnblogs.com/surewing/
2.點開右側Inspectors下的Headers區域,查看Request Headers
3.Request Headers區域里面的就是請求頭信息,可以看到打開博客園首頁的是get請求
- 二、post請求
1.打開登錄首頁:https://passport.cnblogs.com/user/signin
2.輸入賬號和密碼登錄成功后,查看fiddler抓包的請求頭信息,可以看出是post請求
- 三、如何找出需要的請求
1.打開fiddler后,左邊會話框區域刷刷刷的很多請求,那么如何有效的找出自己需要的請求呢?
2.首先第一步:清屏(cls),在左下角命令行輸入cls,清空屏幕(清屏也可以使用快捷鍵Ctrl+X)
get 請求和post請求的區別:
get和post請求參數區別
1.關於get和post的功能上區別就不說了,大家自己查資料,這里主要從fiddler抓包的層面查看請求參數上的區別
2.get請求的Raw參數查看,主要分三部分:
--第1部分是請求url地址
--第2部分是host地址
--第3部分是請求頭部信息header
3.再查看博客登錄請求的Raw信息,post的信息分四部分。
--前面3塊內容都一樣,第3部分和第4部分中間會空一行
--第4部分內容就是post請求的請求body(get請求是沒body的)
request和response
查看工具的界面,這里不在贅述了
- 二、會話框
1.會話框主要查看請求的一些請求的一些基本信息,如# 、result、protocol、host、url、body、 caching、content-type、process
2、#:會話框列表最左側,#號這一欄是代表這個請求大概是什么內容,<>這個符號就是我們一般要測試的請求與響應的類型。
3.result:這里是服務器返回的代碼,如
--200,請求ok;2xx一般是服務器接受成功了並處理
--3xx,重定向相關
--4xx,404最常見的的就是找不到服務器,一般是請求地址有問題
--5xx,這個一般是服務器本身的錯誤
4.protocol:這個是協議類型,如http、https
5.host:主機地址或域名
6.url:請求的路徑
7.body:該條請求產生的數據大小
8.caching:緩存相關
9.content-type:連接類型
10.process:客戶端類型
- 三、Request 和Response
1.Request是客戶端發出去的數據,Response是服務端返回過來的數據,這兩塊區域功能差不多
最右側的是,請求和響應的數據:
2.headers:請求頭,這里包含client、cookies、transport等
3.webfroms:請求參數信息表格展示,更直觀。可以直接該區域的參數
4.Auth:授權相關,如果顯示如下兩行,說明不需要授權,可以不用關注
(這個目前很少見了)
No Proxy-Authorization Header is present.
No Authorization Header is present.
5.cookies:查看cookie詳情
6.raw:查看一個完整請求的內容,可以直接復制
7.json:查看json數據
8.xml:查看xml文件的信息
四、decode解碼
1.如果response的TextView區域出現亂碼情況,可以直接點下方黃色區域解碼
2.也可以選中上方快捷菜單decode,這樣后面的請求都會自動解碼了
fiddler 做接口測試:
fiddler抓包有很大的優勢,但是,fiddler做接口測試也是非常方便的;
1.請求方式:點開可以勾選請求協議是get、post等
2.url地址欄:輸入請求的url地址
3.請求頭:第三塊區域可以輸入請求頭信息
4.請求body:post請求在此區域輸入body信息
5.執行:Execute按鈕點擊后就可以執行請求了
6.http版本:可以勾選http版本
7.請求歷史:執行完成后會在右側History區域生成歷史記錄
二、模擬get請求
1.在Composer區域地址欄輸入博客首頁:http://www.cnblogs.com/surewing/
2.選擇get請求,點Execute執行,請求就可以發送成功啦
3.請求發送成功后,左邊會話框會生成一個會話記錄,可以查看抓包詳情
4.右側history區域會多一個歷史請求記錄
5.會話框選中該記錄,查看測試結果:
--選中該會話,點開Inspectors
--response區域點開Raw區域
--Raw查看的是HTML源碼的數據
--也可以點WebView,查看返回的web頁面數據
- json數據
三、Json數據
1.有些post的請求參數和返回參數是Json格式的,如博客園的登錄請求:https://passport.cnblogs.com/user/signin
2.在登錄頁面手動輸入賬號和密碼,登錄成功。
3.找到這個登錄成功的會話,查看json數據如下圖
- 四、模擬post請求
1.請求類型勾選post
2.url地址欄輸入對應的請求地址
3.body區域寫登錄的json參數,json參數直接copy上一步抓包的數據,如下圖紅色區域
4.header請求頭區域,可以把前面登錄成功后的頭部抓包的數據copy過來
(注意,有些請求如果請求頭為空的話,會請求失敗的)
post請求:
只是一般來說,post請求的參數習慣放到body部分
一、body數據類型
常見的post提交數據類型有四種:
1.第一種:application/json:這是最常見的json格式,也是非常友好的深受小伙伴喜歡的一種,如下
{"input1":"xxx","input2":"ooo","remember":false}
2.第二種:application/x-www-form-urlencoded:瀏覽器的原生 form 表單,如果不設置 enctype 屬性,那么最終就會以 application/x-www-form-urlencoded 方式提交數
3.第三種:multipart/form-data:這一種是表單格式的,數據類型如下
------WebKitFormBoundaryrGKCBY7qhFd3TrwA
Content-Disposition: form-data; name="text"
title
------WebKitFormBoundaryrGKCBY7qhFd3TrwA
Content-Disposition: form-data; name="file"; filename="chrome.png"
Content-Type: image/png
PNG ... content of chrome.png ...
------WebKitFormBoundaryrGKCBY7qhFd3TrwA--
二、json格式
1.打開博客園的登錄頁面,輸入賬號密碼后抓包,查看post提交數據,點開Raw查看整個請求的原始數據
3.查看json格式的樹狀結構,更友好,可以點開JSON菜單項
三、x-www-form-urlencoded
1.登錄博客園后,打開新隨筆,隨便寫一個標題和一個正文后保存,抓包數據如下
2.如上圖的這種格式,很明顯就屬於第二種了,這種類型的數據查看,在WebFrom里面查看了
四、WebFrom
1.為什么登錄請求的WebFrom的body部分為空呢?
2.看上圖紅色框框的顯示:這里只支持application/x-www-form-urlencoded這種格式的body參數,也就是說json格式的,需要在JOSN這一欄查看了