fiddler的介紹
①Fiddler是強大的抓包工具,它的原理是以web代{過}{濾}理服務器的形式進行工作的,使用的代{過}{濾}理地址是:127.0.0.1,端口默認為8888,我們也可以通過設置進行修改。
②代{過}{濾}理就是在客戶端和服務器之間設置一道關卡,客戶端先將請求數據發送出去后,代{過}{濾}理服務器會將數據包進行攔截,代{過}{濾}理服務器再冒充客戶端發送數據到服務器;同理,服務器將響應數據返回,代{過}{濾}理服務器也會將數據攔截,再返回給客戶端。
③Fiddler可以抓取支持http代{過}{濾}理的任意程序的數據包,如果要抓取https會話,要先安裝證書。
技巧一: 全新安裝 Fiddler
默認下,Fiddler 不會捕獲 HTTPS 會話,需要你設置下,打開 Fiddler Tool->Fiddler
Options->HTTPS tab
選中 checkbox,彈出如下的對話框,點擊”YES”
點擊”Yes”后,就設置好了
技巧二:Fiddler ?連接手機代理配置:
1) 依次打開 Fiddler->Tools->Fiddler Options 在【Connection】面板里將 Allow remote computers to connect 勾選,設置端口號【默認為 8888,可修改其他端口號】;點擊【OK】按鈕,關閉 Fiddler 并重新打開 Fiddler。
2) 得到本機 IP 用于手機端配置,windows->運行->cmd->ipconfig;得到本機 IP簡便獲取本機的 IP 有倆種辦法:
①鼠標放置在 fiddler 右上角的 Online,就會顯示本機的 IP、Host 等一些信息,如下圖
②點擊 windows->運行->cmd->ipconfig;得到本機 IP
3) 手機端配置:代理設置更改為【手動】,輸入【代理服務器主機名】(對應 PC 端的 IP 地址),輸入【代理服務器端口號】(Fiddler 配置的端口號)
4)全部配置完畢,現在用手機打開助手,就能在 Fiddler 中監聽到手機發送的請求
技巧三:Fiddler 的基本界面
在Inspectors選項卡下,有許多可用于查看請求或響應消息的選項。其中 Raw Tab 可以查看完整的消息,Headers tab 只查看消息中的 header.如下圖
技巧四: 啟動 Fiddler 后 后 Response ?是亂碼,怎么辦?
有時候我們看到 Response 中的 html 是亂碼的,這是因為 HTML 被壓縮了,我們可以通過兩種方法去解壓縮。
1、點擊 Response Raw 上方的”Response is encoded any may need to be decoded before inspection. click here to transform”
2、選中工具欄中的”Decode”。這樣會自動解壓縮,解壓后重啟就可以了
技巧五:QuickExec命令行的使用
Fiddler 的左下角有個命令行工具叫做 QuickExec,允許你直接輸入命令。
常見的命令有:
help:打開官方的使用頁面介紹,所有的命令都會列出來
cls:清屏
select:選擇會話的命令
?.png:用來選擇 png 后綴的圖片
bpu:截獲 request
技巧六:Fiddler中創建 AutoResponder規則
Fiddler 的 AutoResponder tab 允許你從本地返回文件,而不用將 http request 發送到
服務器上
看個實例.
1、進入助手首頁,把 serverconfig.html 連接保存到本地桌面,選中該條請求,右鍵—>copyàJust Url
2、選中該條請求,點擊右側選擇 AutoResponder,點擊 Add Rule,把該條請求添加進去,或者把這個會話拖到 AutoResponer tab 下
3、選擇 Enable automatic reaponses 和 Unmatched requests passthrough
4、更改本地保存的配置文件,在下面的 Rule Editor 下面選擇 Find a file…選擇本地保存的圖片.最后點擊 Save 保存下
5、重新首次進入助手,查看 serverconfig 返回的數據中就是自己修改的
技巧七:Fiddler中如何過濾會話
每次使用 Fiddler,打開一個網站,都能在 Fiddler 中看到幾十個會話,看得眼花繚亂。最好的辦法是過濾掉一些會話,比如過濾掉圖片的會話。Fiddler 中有過濾的功能,在右邊的 Filters tab 中,如下圖就是只顯示帶有 zhushou.sogou.com 的請求
技巧八:Fiddler中提供的編碼小工具
點擊 Fiddler 工具欄上的TextWizard,這個工具可以 Encode 和 Decode String.
技巧九:Fiddler中查詢會話
打開 Find Sessions 對話框,使用快捷鍵 Ctrl + F,輸入關鍵詞以查找所需會話。查詢到的會話會用黃色顯示
技巧十:Fiddler中保存會話
有些時候我們需要把會話保存下來,以便發給別人或者以后去分析。保存會話的步驟如下:
在選擇想要保存的會話后,點擊菜單欄的“文件”->“保存”->“選定的會話”
CustomRules.JS
CustomRules.js 中的主要方法:
Static function OnBeforeRequest(oSession:Session)//在這個方法中修改 Response 的內容,
重寫后:OnBeforeResponse是一個靜態函數,參數為Session
//在個方法中包含 Fiddler 命令。The QuickExec Box is located in the lower-left corner of the Fiddler Interface.
function OnExecAction(sParams:String[])
實例:修改sogouid
① 在菜單欄中點擊 Rules—》CustomRules,打開 CustomRules.js 腳本
② 添加如下腳本,()里面寫上接口名字,url 中填上請求數據
③ 更改你想要改的 sogouid 就可以
把這段腳本放在 oSession.uriContains()方法下,并且點擊”Save script”,這樣該條接口下的 sogouid 就會變成自己更改的 id
if(oSession.uriContains(“install.html?”)){
oSession.url=”mobile.zhushou.sogou.com/m/install.html?uid=d15449c17bbded35c989736
70c1e1e0c&vn=3.11.2&channel=sogouinputgx&sogouid=e9ed8a54201e5481e20f6760804772c3&stoken==IhTefovaz0ppdInTQxRlnQ&cellid=&sc=0&iv=311″;
技巧十一: 修改session 在 Fiddler 的顯示樣式
把這段腳本放在 OnBeforeRequest(oSession:Session)方法下,并且點擊”Save script”,這樣所有的 cnblogs 的會話都會顯示綠色。
if (oSession.uriContains(“mobiletoolhit.gif?”)) {oSession[“ui-color”] = “green”;}
技巧十二: 如何在Fiddler Script中修改 Request中的body
方法一:
Static function OnBeforeRequest(oSession:Session) {
if(oSession.uriContains(“http://www.cnblogs.com/TankXiao/”)) {
//獲取 Request 中的 body 字符串
var strBody=oSession.GetRequestBodyAsString();
//用正則表達式或者 replace 方法去修改 string
strBody=strBody.replace(“1111″,”2222”);
//彈個對話框檢查下修改后的 body
FiddlerObject.alert(strBody);
//將修改后的 body,重新寫回 Request 中
oSession.utilSetRequestBody(strBody);}}
方法二:
提供一個簡單的方法,可以直接替換 body 中的數據
oSession.utilReplaceInRequest(“ 1111”,“2222”);
post請求模擬
測試時如果客戶端的數據出錯,可能需要單獨對某個 url 進行請求,看返回數據是否正確,通過客戶端再去請求有時需要復雜的環境需求,整一次挺費勁,通過單獨的請求看數據是否正確可以節省一些時間,當然 get 請求可以直接用瀏覽器就能看到返回數據了,post 數據由于有 body 數據,需要借助工具才行,fiddler 的 composer 功能就是為此而生的,如下圖,在上方填寫 url,選擇請求方式,在下方的 body 中添加 post 的數據后,點擊execute 就是請求了,在通過 inspectors 就能看到本次模擬請求的返回值了。