fiddler使用指南

fiddler使用指南

fiddler 設置

若是要手機抓包的話,須要設置fiddler, 容許遠程設備鏈接 tools/fiddler options/connection/allow remote computers to connectjavascript

監控http通信

開啓/中止監控php

  • F12
  • file/Capture traffic
  • quickExec box start/stop

選擇會話html

  • ctrl + click 多選
  • shift + click 選擇連續的會話
  • ctrl + up/down 向上/向下選擇
  • ctrl + i 反選會話 //焦點先定位到 session list
  • P 選擇當前會話的父會話 //對前端而言,好比選擇一個js, 按P,就會定位到html文件
  • C 選擇子會話 //選擇html文件,按C, 定位全部由該html發起的請求, 其實頗有用

查找會話前端

  • ctrl + f
  • quickExec box ? keyword , select image, @targetHostnmae, =304

會話對比
選擇兩個會話,點擊右鍵-compare(需安裝對比工具winMerge), 這頗有用(兩個請求,1個成功返回, 1個報錯或被重定向了,這時能夠對比兩個session)java

刪除會話api

  • delete 刪除選中會話
  • shift + delete 刪除未選中會話
    這個其實蠻實用,好比我選中了 全部的圖片session(select image) 而後想刪掉其他的session, 減小干擾, shift + delete就很方便了(固然也能夠先反選再delete)。
  • ctrl + x 刪除全部會話
  • quickExec box cls/clear 刪除全部會話

會話列表添加列跨域

  • quickExec cols add accept @request.Accept
  • 在列標題點擊右鍵, 選擇 custom column

構造http請求

  • compose面板中,徹底手動建立
  • 拖一個session到compose面板中,修改併發送改請求
  • 按住shift, 點擊 execute按鈕 , 會在請求發出前斷點,容許再次修改

autoResponder自動響應

從左側拖一個session到autoresponder中,默認會自動建立規則 精確匹配(EXACT:the-url),響應爲該session的response(*200-SESSION-6) 若是什麼都不改,就是replay的效果;能夠在rule list中選擇該rule, 按enter編輯響應內容, 很是實用的說瀏覽器

自動響應的規則定義cookie

  • 普通字符串 hello.com // 匹配url包含 hello.com 的
  • 通配符 * // 匹配全部url
  • NOT: hello // 匹配url不包含hello的
  • EXACT: http://localhost/test.php?foo=BAR //精確匹配 包括大小寫
  • 正則 regex:(?inxs)http://localhost/\w+\.php
    如: regex:.+, regex:.+jpg, regex:.+(gif|png|jpg)$
    正則支持修飾符 inxs
    • i ignore case 忽略大小寫
    • n requires explicit capture groups 要求明確的捕獲組
    • s enables single-line syntax 單行
    • x enables comments after the #character 支持#後加註釋

自動響應的內容session

  • 本地文件
  • http://targetUrl 重定向到目標url(原來的請求參數並沒有帶過去)
  • *redir:http://targetUrl
  • *bpu 請求前斷點
  • *bpafter 響應前斷點
  • *delay: Xms 延遲發出請求
  • *header: hi=hello 修改/新增請求頭
  • *CORSPreflightAllow 返回容許跨域的header
  • *reset Reset the client connection
  • *drop close the client connection
  • *exit 該規則什麼都不作,讓後續規則處理

實例: 將正則規則捕獲到的參數,應用到目標url

rule: regex:youdao\.com(.\*)
action: http://localhost/test.php$1

quickExec

聚焦到quickExec box上: ctrl + alt + f 顯示fiddler, alt + q 光標定位到quickExec, 此時若是session list中有選中,ctrl + i 可將選中會話的url粘貼到命令行中.

  • ? hello 搜索url包含 hello 的會話
  • > 2000 查詢 content-length > 2kb的會話, 同 >2k
  • < 2000
  • =301 查詢 statusCode=301的會話
  • =get 查詢 method=get的會話
  • @localhost 查詢hostname=localhost的會話
  • bold hello 若後續的session的url包含hello,則加粗顯示 很實用
  • bold 不帶參數 則清除以前的設定
  • bpafter api/get/user 在匹配的session響應前斷點
  • bpafter 清除以前bpafter的斷點
  • bps 302 若session的statusCode=302 則斷點 bps 清除斷點
  • bpu hello 若請求的url包含hello,則斷點; bpu 清除斷點
  • bpm post 若method爲post, 則請求前斷點; 同 bpv post bpm 清除斷點
  • cls or clear 清除session列表
  • g or go 繼續執行斷點
  • help 打開幫助網頁
  • urlreplace findstr replacestr 在url中找到匹配字符串,則替換;彷佛不支持正則
  • start 開始監聽http請求
  • stop 中止監聽http請求
  • select image 查詢content-type,匹配關鍵字則選中響應session, select html select javascript
  • select ui-comments hello
  • select @Request.Accept html
  • select @Response.set-cookie domain
  • allbut htmlkeeponly html 只保留content-type匹配html的會話 實用
  • quit 退出fiddler
  • !dns www.hello.com 發起dns解析請求

fiddlerScript

添加請求頭部

function OnBeforeRequest(oSession) {
    oSession.oRequest['x-hi'] = 'hello';
}

將請求重定向到其餘主機

function OnBeforeRequest(oSession) {
    if(oSession.HostnameIs('test.com')) {
        // test.com:90/foo/bar -> localhost:90/foo/bar
        oSession.hostname = 'localhost'; 
    }

    if(oSession.host == 'foo.com:90') {
        oSession.host = 'bar.com:9012';
    }
}

將一個url重定向到另外的url

function OnBeforeRequest(oSession) {
    if(oSession.url == 'example.com/test.js') {
        oSession.url = 'localhost.com/mock-test.js';
    }
}

取消發送cookie

function OnBeforeRequest(oSession) {
    oSession.oRequest.headers.Remove('Cookie');
}

替換html文件的內容

function OnBeforeResponse(oSession) {
    if(oSession.HostnameIs('www.test.com') && oSession.oResponse.headers.ExistsAndContains('Content-type', 'text/html')) {
        oSession.utilDecodeResponse();
        oSession.utilReplaceInResponse('<b>', '<u>');
    }

    if(oSession.utilFindInResponse('hello-world', false) > -1) {
        oSession['ui-color'] = 'red';
    }

    if(oSession.oResponse.headers.ExistsAndContains('Content-Type', 'text/html')) {
        oSession.utilDecodeResponse();
        var oBody = System.Text.Encoding.UTF8.GetString(oSession.responseBodyByte);
        oBody.replace(/<div>.*?</div>/, '');
        oSession.setResponseBody(oBody);
    }
}

網速模擬

function OnBeforeRequest(oSession) {
    oSession['request-trickle-delay'] = 300; // delay 300ms to request
    oSession['response-trickle-delay'] = 500; // delay 500ms to response
}

手機安裝fiddler證書 瀏覽器訪問 http://ipv4.fiddler:8888/, 而後下載證書

相關文章
相關標籤/搜索