本文目錄一覽:
- 1、Fiddler中創建AutoResponder規則之替換圖片、JS文件
- 2、如何設置fiddler對nodejs進行抓包
- 3、Fiddler抓包入門
- 4、如何使用Fiddler調試線上JS代碼
- 5、fiddler中利用AutoResponder【重定向功能】 進行調試
- 6、Fiddler 使用10問10答(一)
Fiddler中創建AutoResponder規則之替換圖片、JS文件
一.使用Fiddler進行文件替換
Fiddler 的AutoResponder tab允許你從本地返迴文件,而不用將http request 發送到服務器上。
1.圖片替換
a. 打開百度圖片首頁:image.baidu.com;
b. 打開Fiddler 找到其中一張圖片的會話: (該圖片對應下圖1),把這個會話拖到AutoResponer Tab下(圖2)
如何設置fiddler對nodejs進行抓包
首先要確保手機和安裝有Fiddler的計算機處在同一個局域網中,可以使用路由器,或者使用筆記本發送熱點給手機使用。在這裡本人是使用手機USB共享功能讓筆記本聯網的。進入cmd輸入ipconfig/all。查看IPv4地址,如下圖。下面設置代理需要用到該地址。
打開Fiddler。在Tools中選擇【Fiddler Options】。選擇選項卡【HTTPS】在apture HTTPS CONNECTs前打鉤。
選擇選項卡Connections,按下圖鉤選相應的項。注意到Fiddler listens on port:8888。這是Fiddler默認的監聽地址。也就是我們在設置代理時使用的端口號。一般保持不變就好。
下載證書。可以在電腦中輸入本機的回傳地址,端口號是8888如下圖所示,點擊最下面的【FiddlerRoot certificate】即可下載,發送到手機安裝證書,具體證書的安裝方法自己百度。或者在手機瀏覽器中輸入第一步得到的IPv4地址:8888也行。
手機端的配置。手機進入wifi配置界面,如下圖。這裡的主機名就是第一步的IPv4地址。端口號為8888。前面已經多次提到。配置成功後點擊【確定】。然後斷開wifi,關閉Fiddler。重新連接wifi在打開Fiddler。
經過以上的配置後,就可以用Fiddler監控到手機的上網行為了。以下是在手機UC中打開sina的捕獲圖。可以看到有很多與其他站點的通訊,可以使用過濾或者關閉一些後台程序來凈化。
Fiddler抓包入門
抓包使用場景:
1、用手機APP或瀏覽器訪問一個頁面,查看請求的結果是否正確,請求的參數是否正確
2、在不修改任何環境的情況下,修改返回的結果,即通常所說的mock
3、複雜場景:
比如,同一個域名下的請求,/img/xxx的資源發送到ServerA上,請求/api/xxx資源發送到ServerB上
我們使用瀏覽器或者客戶端軟件都要與外界進行通信,就必然會有數據的發送和接收,有時候需要對這些傳遞的數據進行分析,因此需要截獲這些傳遞的數據。
其中對這些數據進行截獲、重發、編輯、轉存的過程叫做 抓包 。
本地應用與服務器之間所有的Request 和Response都將經過Fiddler,由Fiddler進行轉發,此時Fiddler以代理服務器的方式存在。
由於所有的網絡數據都會經過Fiddler,因此Fiddler能夠截獲這些數據,實現網絡數據的抓包,可以詳細地對HTTP請求進行分析,並模擬對應的HTTP請求。
1、本地化的工具,是一個使用本地 127.0.0.1:8888 的 HTTP 代理
(免費的web調試代理工具,支持任何瀏覽器、系統或平台)
啟動Fiddler後,通過瀏覽器訪問:
(1)任何能夠設置 HTTP 代理為 127.0.0.1:8888 的瀏覽器和應用程序都可以使用 Fiddler
(2)工具打開後,就自動設置了IE瀏覽器的代理,工具關閉後,IE的設置也將被還原
2、Fiddler本身對http協議支持較好,且操作簡單容易上手
3、具有抓包和分析功能,省去了安裝其他工具的必要
4、工具本身功能強大
(1)劫包:模擬接口不給前端返回數據,看前端怎麼處理,如果沒有工具,就只能採用斷網、停用服務器
(2)篡改數據:假設沒法去模擬前端對於接口返回數據很長時,怎麼去展示,換行?截取?小屏幕上頁面扭曲?如果通過篡改數據,就能直觀的把數據返回給前端展示,很明顯的看到前端數據是什麼樣的,就不需要從底層改數據
(3)模擬低速、弱網環境等,有些元素加載不出來會導致樣式問題
網絡爬蟲是自動爬取網頁的程序,在爬取的過程中必然會涉及客戶端與服務端之間的通信,也需要發送一些HTTP請求,並接受服務器返回的結果。
有些網址變化肉眼是看不出規律的,這時配合抓包軟件會變得較容易。
案例:網頁底部「閱讀更多」
在瀏覽一些圖片網站時,瀏覽到最下面的時候會出現一個「閱讀更多」的字樣,此時單擊「閱讀更多」頁面上顯示更多內容,加載出來的內容跟原來的內容是在同一個網頁上展示的。我們直接看網址的變化是看不出任何規律的,便無法分析該請求是如何實現的,無法通過程序構造出該請求。
此時可以通過Fiddler 進行抓包,對這些數據進行分析,查看request headers 發現是通過Get請求來實現的,總共有3個參數:order_by、page、per_page
通過分析就可以知道頁面上只顯示20篇文章,之後就需要通過 閱讀更多 進行加載
每點擊一次 閱讀更多 ,相當於在修改page值
知道實現規律後,就可以通過編寫程序構造出對應的請求,並由程序自動地實現這些請求的發送。
假如修改page為3、4、5,在新窗口進行訪問,與頁面閱讀更多進行比對
Fiddler 默認是抓 http請求的,對於pc上的 https請求,會提示網頁不安全,這時候需要在瀏覽器上安裝證書
Fiddler可以通過偽造CA證書來欺騙瀏覽器和服務器,大概原理就是在瀏覽器面前Fiddler偽裝成一個HTTPS服務器,而在真正的HTTPS服務器面前Fiddler又裝成瀏覽器,從而實現解密HTTPS數據包的目的。
1、檢查Fiddler設置
2、導出證書
3、導入到Firefox瀏覽器
測試下結果,打開百度網頁,成功了,接下來就可以進行抓包了
1、cls (或 clear) 清屏命令
清空會話列表中的所有會話
2、select 篩選某一類型的會話命令
如 select html ,輸入命令後敲回車鍵,在會話列表中所有html類型的會話都已被選中
3、? 查找網址中包含某些字符的會話信息
如 ?jianshu 可以查找出網址中包含「jianshu」字符串的會話信息,跟其他會話信息用不同顏色區分顯示
4、help 幫助命令
打開官方的使用頁面介紹,所有的命令都會列出來
5、bpu、bpafter 斷點命令
6、dump 快速保存
以 鐵路網的貨物跟蹤 為例
頁面有車號、貨票號、驗證碼三個字段,通過輸入不同格式的值來觀察頁面提示與 Fiddler 抓包返回的 json值
1、先輸入格式正確的值,點查詢
2、修改貨票號的位數,點查詢
1、兩次抓包的接口是一樣嗎?第一個是post,第二個是get,不是同一個
2、第二個請求沒有發出去,應該是前端直接對數值的位數做了校驗的,這個時候就不會調接口,所以就沒有數據顯示了
如想更深入的使用Fiddler,請查看 進階篇
如何使用Fiddler調試線上JS代碼
g.) 今天分享一下如何用Fiddler來修改並調試線上的JS代碼. 以博客園首頁為例子,用我本地的一個js文件來替換它的一個js. 查看首頁源碼發現一個js,就拿它開刷了. 打開fiddler,捕獲博客園的首頁請求. 找到「aggsite.js」的請求. 這裡有個技巧,可以通過 「select」命令來篩選js請求. 在下面的命令框輸入「select script」回車即可. 如下圖. 接着把這個請求拖動到「AutoResponder」面板. 拖動之前記得先勾
fiddler中利用AutoResponder【重定向功能】 進行調試
一、將服務器的返回數據(即原資源)重定向到本地的文件進行調試
1、打開fiddler,打開瀏覽器輸入(已百度為例),再回到fiddler進行設置
2、按照截圖所示,分別將4個選購全部勾選,勾選完成後,將待重定向的網址直接拖到右方【手動填寫完整地址/正則表達式進行模糊匹配的地址】即可
3、填寫要替換的內容,下拉框有很多選項可以選擇, 比如201、302、404,502等status code
注,我的一開始是404_Plain.dat
4、設置完成之後,刷新百度網頁,請求回來的數據已經是替換後的內容了
註:想取消的話,直接將第1步中勾選的Enable rules去掉即可
二、利用AutoResponder【重定向功能】修改返回response的數據
1、在fiddler中打開百度,選擇SyntaxView的內容進行複製,保存到本機上,以baidu.html格式進行保存
2、點擊AutoResponder,把剛才的網址拖到右邊
3、第一個下拉框選擇Header:Accept=html
第二個下拉框選擇你剛才保存baidu.html的路徑
4、勾選Enable rules之類的四個,然後點擊保存
5、再訪問百度
註:想取消的話,直接將第1步中勾選的Enable rules去掉即可
Fiddler 使用10問10答(一)
背景:下面這些問題都是我了解使用Fiddler階段遇到的初級問題,解決方案或許不確切,這裡僅供參考,後續持續變更。
1.打開Fiddler後,打開Chrome瀏覽器,輸入網址提示「您的連接不是私密連接」
解決方法:取消HTTPS下的Decrypt Https Traffic的勾選,如圖,再次打開網站後提示會消失
2.為什麼要設置斷點及設置斷點原理
*首先Fildder工作原理:在服務端和客戶端之間充當代理服務器
*斷點:簡單舉個例子,當需要修改服務端在客戶端顯示內容,或者需要修改客戶端密碼都可以設置斷點。
3.inspectors下webforms表格內容點擊後無反應,無法修改內容
試了好久才發現使用bpu xx命令後,設置斷點未成功,點擊Rules-Automatic Breakpoins-Before Requests設置所有斷點,一般設置斷點成功後,會有紅色圖標出現,如下圖
4.輸入bpu 命令後,斷點設置/取消失敗,無紅色圖標出現
嘗試瀏覽器使用IE試一試
5.filder 如何停止自動抓包
點擊左下角的Capturing按鈕
6.如何清除抓包記錄
在上圖黑色文本框中輸入cls
7.如何查詢特定網站記錄
打開Fillder,鍵盤同時按下【Ctrl】+【F】鍵,在搜索框輸入網站網址,點擊確定後(默認黃色顯示)指定網站記錄
8.Before request和After response不同
*Before Request請求調試、After Response 回發調試
*執行請求調試步驟:Before Request-修改數據-Run to Completion
執行回發調試步驟:Before Request-Break on Response-修改數據-Run to Completion
9.Break on Response和Run to Completion區別
*Break on Response攔截服務器會發數據、Run to Completion執行修改過的數據或是繼續執行
*Break on Response當涉及到修改服務器返回數據時需要點擊,之後再點擊Run to Completion繼續運行;當涉及到修改請求的數據時,直接修改完成後點擊Run to Completion即可
10.執行請求調試步驟:修改表單內容成功後點擊Run to Completion,頁面無反應(一直處於刷新狀態)(例如登錄頁面輸入正確的用戶名、密碼後會成功登錄)
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/235625.html