fiddler抓包教程------详细
文章目錄
- 一、簡介
- 二、工作原理
- 三、Fiddler界面
- 四、HTTP協議介紹
- 五、Fiddler抓包解析
- 六、應用
一、簡介
????Fiddler 是最強大最好用的Web調試工具之一,它能記錄所有客戶端和服務器的http和https請求,允許你監視,設置斷點,甚至修改輸入輸出數據,Fiddler包含了一個強大的基于事件腳本的子系統,并且能使用 .net語言進行擴展。
????你對HTTP 協議越了解, 你就能越掌握Fiddler的使用方法。你越使用Fiddler,就越能幫助你了解HTTP協議,Fiddler無論對開發人員或者測試人員來說,都是非常有用的工具。
不多說了,直接上才藝
二、工作原理
????Fiddler 是以代理web服務器的形式工作的,它使用代理地址:127.0.0.1,端口:8888。當Fiddler退出的時候它會自動注銷,這樣就不會影響別的程序。不過如果Fiddler非正常退出,這時候因為Fiddler沒有自動注銷,會造成網頁無法訪問。
解決的辦法是重新啟動下Fiddler
接下來繼續我們的主題
三、Fiddler界面
四、HTTP協議介紹
HTTP協議之請求:http請求由三部分組成,分別是:請求行、消息報頭、請求正文請求方法(所有方法全為大寫)有多種,各個方法的解釋如下:
GET:請求獲取Request-URI所標識的資源
POST:在Request-URI所標識的資源后附加新的數據
HEAD:請求獲取由Request-URI所標識的資源的響應消息報頭
PUT:請求服務器存儲一個資源,并用Request-URI作為其標識
DELETE:請求服務器刪除Request-URI所標識的資源
TRACE:請求服務器回送收到的請求信息,主要用于測試或診斷
CONNECT:保留將來使用
OPTIONS:請求查詢服務器的性能,或者查詢與資源相關的選項和需求應用舉例:
GET方法:在瀏覽器的地址欄中輸入網址的方式訪問網頁時,瀏覽器采用GET 方法向服務器獲取資源,(eg:GET /form.html HTTP/1.1 (CRLF))
POST方法:要求被請求服務器接受附在請求后面的數據,常用于提交表單。
HTTP協議之響應:在接收和解釋請求消息后,服務器返回一個HTTP響應消息。
HTTP響應也是由三個部分組成,分別是:狀態行、消息報頭、響應正文
狀態代碼有三位數字組成,第一個數字定義了響應的類別,且有五種可能取值:
1xx:指示信息–表示請求已接收,繼續處理
2xx:成功–表示請求已被成功接收、理解、接受
3xx:重定向–要完成請求必須進行更進一步的操作
4xx:客戶端錯誤–請求有語法錯誤或請求無法實現
5xx:服務器端錯誤–服務器未能實現合法的請求常見狀態代碼、狀態描述
說明:
200 OK:客戶端請求成功
400 Bad Request:客戶端請求有語法錯誤,不能被服務器所理解
401 Unauthorized:請求未經授權,這個狀態代碼必須和WWW-Authenticate報頭域一起使用
403 Forbidden:服務器收到請求,但是拒絕提供服務
404 Not Found:請求資源不存在,eg:輸入了錯誤的URL
500 Internal Server Error:服務器發生不可預期的錯誤
503 Server Unavailable:服務器當前不能處理客戶端的請求,一段時間后可能恢復正常
五、Fiddler抓包解析
1、使用fiddler抓包后,會話列表各項內容展示如下圖:
#:HTTP Request的順序,從1開始,按照頁面加載請求的順序遞增
Result:HTTP響應的狀態????Protocol:請求使用的協議(如HTTP/HTTPS)
HOST:請求地址的域名????URL:請求的服務器路徑和文件名,也包含GET參數
BODY:請求的大小,以byte為單位????Content-Type:請求響應的類型
Caching:請求的緩存過期時間或緩存控制header的值
Process:發出此請求的Windows進程及進程ID
Comments :用戶通過腳本或者菜單給此session增加的備注 custom:用戶可以通過腳本設置的自定義值
2、Fiddler右側面板使用介紹
Statistics頁簽:
????通過該頁簽,用戶可以通過選擇多個會話來得來這幾個會話的總的信息統計,比如多個請求和傳輸的字節數。
選擇第一個請求和最后一個請求,可獲得整個頁面加載所消耗的總體時間。從條形圖表中還可以分別出哪些請求耗時最多,從而對頁面的訪問進行訪問速度優化
inspectors頁簽:
????它提供headers、textview、hexview,Raw等多種方式查看單條http請求的請求報文的信息,它分為上下兩部分:上部分為HTTP Request展示,下部分為HTTP Response展示
AutoResponse頁簽:
????Fiddler最實用的功能,它可以抓取在線頁面保存到本地進行調試,大大減少了在線調試的困難,可以讓我們修改服務器端返回的數據,例如讓返回都是HTTP404 或者讀取本地文件作為返回內容。
composer頁簽:
????支持手動構建和發送HTTP,HTTPS和FTP請求,我們還可以從web session列表中拖曳session,把它放到composer選項卡中,當我們點擊Execute按鈕,把請求發送到服務器端。
log頁簽:打印日志
Filters頁簽:
????過濾器可以對左側的數據流列表進行過濾,我們可以標記、修改或隱藏某些特征的數據流。
Timeline頁簽:
????時間軸,也稱為Fiddler的瀑布圖,展示網絡請求時間的功能。每個網絡請求都會經歷域名解析、建立連接、發送請求、接受數據等階段。把多個請求以時間作為 X 軸,用圖表的形式展現出來,就形成了瀑布圖。在左側會話窗口點擊一個或多個(同時按下 Ctrl 鍵),Timeline 便會顯示指定內容從服務端傳輸到客戶端的時間
Fiddler的左下角有一個命令行工具叫做QuickExec,允許你直接輸入命令。
常見得命令有:
help:打開官方的使用頁面介紹,所有的命令都會列出來
cls:清屏 (Ctrl+x 也可以清屏)
select:選擇會話的命令,選擇所有相應類型,select image select css select html
?sometext:查找字符串并高亮顯示查找到的會話列表的條目
>size:選擇請求響應大小小于size字節的會話
=status/=method/@host:查找狀態、方法、主機相對應的session會話 quit:退出fiddler
Bpafter, Bps, bpv, bpm, bpu
這幾個命令主要用于批量設置斷點
Bpafter xxx:中斷 URL 包含指定字符的全部 session 響應
Bps xxx:中斷 HTTP 響應狀態為指定字符的全部 session 響應
Bpv xxx:中斷指定請求方式的全部 session 響應
Bpm xxx:中斷指定請求方式的全部 session 響應。等同于bpv xxx Bpu xxx:與bpafter類似
六、應用
1、手機抓包
①啟動Fiddler,打開菜單欄中的 Tools > Fiddler Options,打開“Fiddler Options”對話框
②在“Fiddler Options”對話框切換到“Connections”選項卡,然后勾選“Allow romote computers to connect”后面的復選框,然后點擊“OK”按鈕
③在本機命令行輸入:ipconfig,找到本機的ip地址。
④打開android設備的“設置”->“WLAN”,找到你要連接的網絡,在上面長按,然后選擇“修改網絡”,彈出網絡設置對話框,然后勾選“顯示高級選項”
⑤在 “代理” 后面的輸入框選擇“手動”,在“代理服務器主機名”后面的輸入框輸入電腦的ip地址,在“代理服務器端口”后面的輸入0框輸入8888,然后點擊“保存”按鈕
⑥然后啟動android設備中的瀏覽器,訪問百度的首頁,在fiddler中可以看到完成的請求和響應數據
備注:如果是Android模擬器中ip要填寫10.0.2.2,genymotion模擬器中ip要填寫:10.0.3.2,端口就是burp或者fiddler監聽的端口
2、過濾功能
1.選擇Filters頁簽,勾選use Filters
2.勾選 Request Headers 中的 Hide if url contains 過濾項,在里面輸入:
REGEX:(?insx)/[^\?/]*\.(css|ico|jpg|png|gif|bmp|wav)(\?.*)?$
REGEX:表示啟用正則表達式
(?insx) 設置正則解釋的規則, 忽略大小寫等.
此表達式表示過濾掉 url 中包括 css, ico, jpg 等后綴的請求
勾選 Request Headers 中的show only if URL contains,在里面輸入REGEX:(?insx).*\.?baidu.com/home.*????表示只顯示:baidu.com/Home
Fiddler過濾指定域名
第二個選項是只監控以下網址,如只監控百度,在下面的輸入框里填上 www.baidu.com
“No Host Filter”:不設置hosts過濾
“Hide The Following Hosts”:隱藏過濾到的域名
“Show Only The Following Hosts”:只顯示過濾到的域名
“Flag The Following Hosts”:標記過濾到的域名
總結
以上是生活随笔為你收集整理的fiddler抓包教程------详细的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: centos7 docker 安装企业版
- 下一篇: 优秀工程师应该具备哪些素质_作为现代工程