常用HTTP抓包工具Fiddler使用的12個小技巧,值得收藏!

博為峰網校發表於2019-07-02

說起抓包,很多人以為就是用個工具,簡簡單單地抓一下就可以了。昨天在面試一個安卓逆向,直接告訴我“抓包沒有技術含量”。

在這裡,我必須發一篇技術文,解析一下抓包神器——Fiddler。

Fiddler僅僅是一個抓包工具?不好意思,Fiddler用得好,真的可以為所欲為。

常用HTTP抓包工具Fiddler使用的12個小技巧,值得收藏!

Fiddler的介紹

①Fiddler是強大的抓包工具,它的原理是以web代{過}{濾}理伺服器的形式進行工作的,使用的代{過}{濾}理地址是:127.0.0.1,埠預設為8888,我們也可以透過設定進行修改。

②代{過}{濾}理就是在客戶端和伺服器之間設定一道關卡,客戶端先將請求資料傳送出去後,代{過}{濾}理伺服器會將資料包進行攔截,代{過}{濾}理伺服器再冒充客戶端傳送資料到伺服器;同理,伺服器將響應資料返回,代{過}{濾}理伺服器也會將資料攔截,再返回給客戶端。

③Fiddler可以抓取支援http代{過}{濾}理的任意程式的資料包,如果要抓取https會話,要先安裝證照。

技巧一: 全新安裝 Fiddler

預設下,Fiddler 不會捕獲 HTTPS 會話,需要你設定下,開啟 Fiddler Tool->Fiddler

Options->HTTPS tab

常用HTTP抓包工具Fiddler使用的12個小技巧,值得收藏!

選中 checkbox,彈出如下的對話方塊,點選"YES"

常用HTTP抓包工具Fiddler使用的12個小技巧,值得收藏!

常用HTTP抓包工具Fiddler使用的12個小技巧,值得收藏!

點選"Yes"後,就設定好了

技巧二:Fiddler  連線手機代理配置:

1) 依次開啟 Fiddler->Tools->Fiddler Options 在【Connection】皮膚裡將 Allow remote computers to connect 勾選,設定埠號【預設為 8888,可修改其他埠號】;點選【OK】按鈕,關閉 Fiddler 並重新開啟 Fiddler。

常用HTTP抓包工具Fiddler使用的12個小技巧,值得收藏!

2) 得到本機 IP 用於手機端配置,windows->執行->cmd->ipconfig;得到本機 IP簡便獲取本機的 IP 有倆種辦法:

①滑鼠放置在 fiddler 右上角的 Online,就會顯示本機的 IP、Host 等一些資訊,如下圖

常用HTTP抓包工具Fiddler使用的12個小技巧,值得收藏!

②點選 windows->執行->cmd->ipconfig;得到本機 IP

常用HTTP抓包工具Fiddler使用的12個小技巧,值得收藏!

3) 手機端配置:代理設定更改為【手動】,輸入【代理伺服器主機名】(對應 PC 端的 IP 地址),輸入【代理伺服器埠號】(Fiddler 配置的埠號)

常用HTTP抓包工具Fiddler使用的12個小技巧,值得收藏!

4)全部配置完畢,現在用手機開啟助手,就能在 Fiddler 中監聽到手機傳送的請求

常用HTTP抓包工具Fiddler使用的12個小技巧,值得收藏!

技巧三:Fiddler 的基本介面

常用HTTP抓包工具Fiddler使用的12個小技巧,值得收藏!

nspectors tab 下有很多檢視 Request 或者 Response 的訊息。其中 Raw Tab 可以檢視完整的訊息,Headers tab 只檢視訊息中的 header.如下圖

常用HTTP抓包工具Fiddler使用的12個小技巧,值得收藏!

技巧四: 啟動 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"。這樣會自動解壓縮,解壓後重啟就可以了

常用HTTP抓包工具Fiddler使用的12個小技巧,值得收藏!

技巧五: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 返回的資料中就是自己修改的

常用HTTP抓包工具Fiddler使用的12個小技巧,值得收藏!

技巧七:Fiddler中如何過濾會話

每次使用 Fiddler,開啟一個網站,都能在 Fiddler 中看到幾十個會話,看得眼花繚亂。最好的辦法是過濾掉一些會話,比如過濾掉圖片的會話。Fiddler 中有過濾的功能,在右邊的 Filters tab 中,如下圖就是隻顯示帶有 zhushou.sogou.com 的請求

常用HTTP抓包工具Fiddler使用的12個小技巧,值得收藏!

技巧八:Fiddler中提供的編碼小工具

點選 Fiddler 工具欄上的TextWizard,這個工具可以 Encode 和 Decode string.

常用HTTP抓包工具Fiddler使用的12個小技巧,值得收藏!

技巧九:Fiddler中查詢會話

用快捷鍵 Ctrl+F 開啟 Find Sessions 的對話方塊,輸入關鍵字查詢你要的會話。查詢到的會話會用黃色顯示

常用HTTP抓包工具Fiddler使用的12個小技巧,值得收藏!

技巧十:Fiddler中儲存會話

有些時候我們需要把會話儲存下來,以便發給別人或者以後去分析。儲存會話的步驟如下:

選擇你想儲存的會話,然後點選 File->Save->Selected Sessions

CustomRules.js

CustomRules.js 中的主要方法:

Static function OnBeforeRequest(oSession:Session)//在這個方法中修改 Response 的內容,

Static function OnBeforeResponse(oSession:Session)

//在個方法中包含 Fiddler 命令。在 Fiddler 介面中左下方的 QuickExec Box static

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";}

常用HTTP抓包工具Fiddler使用的12個小技巧,值得收藏!

技巧十二: 如何在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 就能看到本次模擬請求的返回值了。

常用HTTP抓包工具Fiddler使用的12個小技巧,值得收藏!

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31407649/viewspace-2649356/,如需轉載,請註明出處,否則將追究法律責任。

相關文章