本文目錄一覽:
- 1、Fiddler抓包入門
- 2、fiddler抓包詳細教程–會話保存
- 3、fiddler中利用AutoResponder【重定向功能】 進行調試
- 4、fiddler怎麼安裝證書
- 5、使用fiddler+模擬器進行APP抓包
- 6、fillder證書的安裝(firefox和手機)
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抓包詳細教程–會話保存
前言
為什麼要保存會話呢?舉個很簡單的場景,你在上海測試某個功能接口的時候,發現了一個BUG,而開發這個接口的開發人員是北京的一家合作公司。
你這時候給對方開發提bug,如何顯得專業一點,能讓對方心服口服的接受這個BUG呢?如果只是截圖的話,不是很方便,因為要截好幾個地方還描述不清楚,不如簡單粗暴一點把整個會話保存起來,發給對方。
一、保存為文本
1、以博客園登錄為例,抓到登錄的請求會話
2、點左上角FileSaveSelected Sessionsas Text,保存到電腦上就是文本格式的
3、文本格式的可以直接打開,結果如下圖
1、save-All Sessions :保存所有的會話,saz文件
2、save-Selected Session:保存選中的會話
(1)in ArchiveZIP :保存為saz文件
(2)as Text :以txt文件形式保存整個會話包括Request和Response
(3)as Text (Headers only) :僅保存頭部
3、Request:保存請求
(1)Entir Request:保存整個請求信息(headers和body)
(2)Request Body:只保存請求body部分
4、Response:保存返回
(1)Entir Response:保存整個返回信息(headers和body)
(2)Response Body:只保存返回body部分
(3)and Open as Local File:保存Response信息,並打開文件
亂碼問題(decode)
1、打開博客園首頁: ,保存之後查看,會發現返回的是亂碼
2、遇到這種情況,主要是需要解碼,用前面學到的decode方法
3. 點擊箭頭區域後,重新保存就沒亂碼了。
4. 還有一個最簡單辦法就是選中上圖會話框上的decode按鈕,這樣就自動解碼了。
保存與導入全部會話
1、我們可以打開fiddler,操作完博客園後,選中saveAll Sessions,保存全部會話
2、保存後,在fiddler打開也很方便,直接把剛才保存的會話按住拽進來就可以了
3. 也可以選擇FileLoad Archive導入這個文件
Repaly
1、導入請求後,可以選中某個請求,點擊Repaly按鈕,重新發請求
2、也可以ctrl+a全部選中後,點Repaly按鈕,一次性批量請求
這裡保存會話和replay功能其實就是相當於錄製和回放了
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怎麼安裝證書
首先,打開 Fiddler,在菜單欄中依次選擇 【Tools】-【Fiddler Options】-【HTTPS】,勾上如下圖的選項。
勾上後,Fiddler 會提示你安裝一個證書。安裝完後點擊上圖中的 “Export Root..” 按鈕,將證書下載到桌面。
接着將證書導入到瀏覽器。這裡以 chrome 舉例,依次選擇 【設置】-【管理證書..】 將保存在桌面的證書導入即可(其他瀏覽器類似,通常有個“證書”選項設置)。
也可以直接雙擊下載下來的證書,進行安裝。
我們打開 ,這時就可以愉快地捕獲 https 請求了!
細心的你可能會發現,在 https 的請求中夾雜着一些 http 的請求,並且該 session 的 Host 參數是個詭異的 “Tunnel to”,什麼鬼? StackOverflow 里早已有 精彩解答 ,或者可以直接看 這裡 ,簡單地說 fiddler 當做代理轉發 https 請求的時候,就會產生 “CONNECT Tunnels”,所以大可忽略它。
使用fiddler+模擬器進行APP抓包
1、打開Fiddler,點擊工具欄中的Tools—Fiddler Options
2、https設置及connections設置,勾選選擇項
3、點擊Actions,點擊第二項:Export Root Certificate to Desktop,這時候桌面上會出現證書FiddlerRoot.cer文件,點擊OK設置成功,關閉fiddler。
4、打開模擬器,設置代理。找到系統應用,點擊設置,點擊無線網絡WLAN—左鍵常按點擊已連接網絡—修改網絡。
5、將步驟3導出的證書FiddlerRoot.cer文件導入至模擬器。模擬器在更多里可以共享文件。將證書直接拖至該共享文件夾里。
6、在模擬器中打開系統應用—設置—安全—從SD卡安裝。找到FiddlerRoot.cer文件,按提示導入即可,注意在此過程需要名稱和解鎖圖案等,自行即可。
7、打開fiddler,重啟模擬器,就可以在電腦上進行APP抓包了。
fillder證書的安裝(firefox和手機)
注意:所有抓包過程中使用無痕瀏覽器
1、fiddler對瀏覽器抓包
1.1 對瀏覽器的http的抓包
Capturing開啟,進行抓包;
Capturing關閉,停止抓包;
如下圖:
1.2 對瀏覽器的https抓包
1.2.1 開啟fiddler的https選項
配置路徑:
Tools – Fiddler Options – HTTPS – 三個選項全部勾選
如下圖所示:
1.2.2 fiddler導出ca證書
操作路徑:
Tools – Fiddler Options – HTTPS – Export Fiddler Root Certificate to Desktop
如下圖所示:
導出後,如下圖所示:
1.2.3 火狐瀏覽器導入ca證書
操作路徑:
瀏覽器 – 工具 – 選項 – 高級 – 證書 – 查看證書 – 導入
如下圖所示:
導入:
1.2.4 重啟瀏覽器和fiddler開始抓包
至此,fiddler可以對瀏覽器的http和https進行抓包
2、對安卓APP進行抓包
2.1 綁定手機網絡至fiddler主機
操作路徑:
設置 – 無線網絡 – 選中連接的wifi – 高級設置 – 開啟”手動HTTP代理“ – 編輯”代理服務器主機名“至主機IP
如圖所示:
注意:抓包前,必須斷開重連wifi
2.2 導入ca證書至手機
(1)傳輸證書至手機
可通過手機助手、微信助手等
(2)導入證書
如圖:
(3)導入成功
如圖:
至此,證書導入成功
2.3 fiddler設置移動設備抓包
操作路徑:
Tools – Fiddler Options – Connections – 選中”Allow remote computers to connect”
如圖:
注意:設置完後,抓包前必須重啟fiddler設備
至此,fiddler可以正常對移動端設備進行抓包了
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/257538.html