抓包工具-Fidder抓取web app請求


1.什么是Fiddler,它可以做什么
Fiddler是位於客戶端和服務器端的HTTP代理,也是目前最常用的http抓包工具之一。
Fiddler能夠記錄客戶端和服務器之間的所有http請求,可以針對特定的http請求, 分析請求數據,設置斷點,調試web應用,修改請求的數據,甚至可以修改服務器返回的數據,功能非常強大,是web調試的利器
既然是代理,也就是說客戶端的 所有請求都要先經過Fiddler,然后轉發到相應的服務器,反之服務器的所有響應,也都會先經過Fiddler,然后發送到客戶端,基於這個原因,Fiddler支持所有可以設置http代理為: 127.0.0.1:8888的瀏覽器和應用程序
使用了FIddler后,web客戶端和服務器的請求如右圖所示:
本地回路地址是指本地回環地址,本地回環地址不屬於任何一個有類別地址類。它代表設備的本地虛擬接口,所以默認被看作是永遠不會宕掉的接口。
作用:
一般都會用來檢查本地網絡協議、基本數據接口等是否正常的。
主要作用有兩個:一是測試本機的網絡配置,能PING通 127.0.0.1說明本機的網卡和IP協議安裝都沒有問題;另一個作用是某些SERVER/CLIENT的應用程序在運行時需調用服務器上的資源,一般要指定SERVER的IP地址,但當該程序要在同一台機器上運行而沒有別的SERVER時就可以把SERVER的資源裝在本機,SERVER的IP地址設為 127.0.0.1同樣也可以運行。
本地回環地址指的是以127開頭的地址( 127.0.0.1 - 127.255.255.254),通常用127.0.0.1來表示。
2.利用Fiddler錄制web請求
1.打開瀏覽器,設置服務代理器為:127.0.0.1端口為:8888
2.打開Fiddler,然后打開瀏覽器,進行目標網站訪問
3.錄制請求如下:
3.Fiddler各個組件分析
web session面板:主要是Fiddler抓取到的每條http請求(每一條稱為一個session)
主要包含了請求的URL,協議,狀態碼,body等信息,詳細的字段含義如下
 
1.#  http request 的順序,從1開始,按照頁面加載請求的順序遞增
2.  Result   http響應的狀態,可以參考這里
3.  protocol:請求使用的協議(如http,https,ftp)
4.  host 請求地址的域名
5.URL:請求的服務器路徑和文件名,也包括GET參數
6. BODY: 請求的大小,以byte為單位
7.caching:請求的緩存過期時間或緩存控制 header等值
8. content-type: 請求響應的類型
9.process 發出此請求的windows進程和進程ID
10:comments:用戶通過腳本或者右鍵菜單給此session增加的備注
11.custom: 用戶可以通過腳本設置的自定義值
HTTP狀態碼(HTTP Status Code)是用以表示網頁 服務器HTTP響應狀態的3位數字代碼
常見的http  code:200  ok 302  move 400 bad request 401 Unauthorized 403 Forbidden  404 Not Found 405 Method Not Allowed 500 Internal Server Error 服務器內部錯誤
如果只想抓取一個網站的包的話
然把fiddler的默認端口8888改掉,改程7777,右邊第一個在啟動時作為系統代理不打鈎
后把火狐的端口也改成7777。
重啟fiddler
crtl+x 清除右邊session
statistic:
關於http請求的性能和其他數據分析,我們可以從中看出一些基本性能數據,如DNS解析的時間,建立TCP/IP連接的時間消耗等信息
 
inspectors
分為上下兩個部分,上半部分是請求頭部分,下半部分是響應頭部分。
對於每一部分,提供了多種不同格式查看每個請求的響應的內容
JPG格式使用imageview就可以看到圖片
HTML/JS/CSS使用textview 可以看到響應的內容
raw標簽可以查看原始的符合http標准的請求和響應頭
cookies標簽可以看到請求的cookie和響應的set-cookie頭信息
 
AutoResponder   調試bug
Fiddler比較重要且強大的功能之一,可用於攔截某一請求,並重定向到本地資源,或者使用Fiddler的內置響應,可用於調試服務器端代碼而無需修改服務器端的代碼和配置,因為攔截和重定向后,實際上訪問的是本地的的文件或者得到的Fiddler的內置響應。當勾選allow autoresponser並設置相應的規則后,進行使用。因此,如果要調試服務器的某個腳本文件,可以將該腳本攔截到本地,在本地修改完腳本以后,在修改服務器的內容,這樣可以保證盡量在真實的環境下去調試,從而最大限度的減少bug發生的可能性。
Composer  設計者  也可以做接口測試,可以修改數據,從fiddler端發起請求
Parsed輸入請求的url之后,execute即可,也可以修改相應的頭信息(如添加常用的accept,host,referrer,cookie,cache-control等頭部)后execute
把請求信息拖到右邊,可以看到具體的請求信息。點擊excute可以從fiddler端發起請求代替瀏覽器端
可以繞過前端,去發現前端一些發現不了的bug 提高網站的健壯性,可以判斷是前端的文圖
比如說先登錄獲取session信息 然后拖住登錄login請求拖到composer里,查看webform會以表單形式把用戶名和密碼列出來,修改密碼或用戶名點擊execute 重新登錄查看statis里的提示 可以繞過前端,比如密碼輸入1個字gaus
也可以用來做接口測試
Filters  相當於數據庫里面的where 過濾
另一個更強大的功能,提供了多維度的過濾規則,足以滿足日常開發調試的需求,Fiddler的過濾器非常強大,可以過濾特定http狀態碼的請求,可以過濾特定請求類型的http請求(如css請求,image請求,js請求等)可以過濾請求報文大於或小於等於指定大小(byte)
intrante內網  internet外網
 
利用Fiddler設置斷點進行調試修改
1.Fiddler菜單欄-rules-automatic breakpoint選擇斷點方式
before request 也就是發送請求之后,fiddler代理中轉之前,這是可以修改請求的數據
after request 也就是服務器響應之后,在fiddler將響應中轉給客戶端之前,這是可以修改響應的結果
 
https
我們都知道HTTP並非是安全傳輸,在HTTPS基礎上使用SSL協議進行加密構成的HTTPS協議是相對安全的。目前越來越多的企業選擇使用HTTPS協議與用戶進行通信,如百度、谷歌等。HTTPS在傳輸數據之前需要客戶端(瀏覽器)與服務端(網站)之間進行一次握手,在握手過程中將確立雙方加密傳輸數據的密碼信息。
一言以弊之,HTTPS是通過一次非對稱加密算法(如RSA算法)進行了協商密鑰的生成與交換,然后在后續通信過程中就使用協商密鑰進行對稱加密通信。HTTPS協議傳輸的原理和過程簡圖如下所示
 
二、Fiddler抓取HTTPS協議原理
我們都知道,Fiddler是個很好的代理工具,可抓取協議請求用於調試。關於Fiddler抓取HTTP協議的原理和配置比較簡單,對Fiddler和客戶端稍作配置,便能使得Fiddler輕易地獲取HTTP請求。但是由於HTTPS協議的特殊性,要進一步地配置Fiddler,我們首先要了解一下fiddler抓取HTTPS協議的原理才能更好地理解如何對fiddler進行配置。Fiddler本身就是一個協議代理工具,在上一節HTTPS原理圖上,客戶端與服務器端進行通信的過程全部都由Fiddler獲取到,也就是如下圖所示:
 
服務器—>客戶端:Fiddler接收到服務器發送的密文, 用對稱密鑰解開, 獲得服務器發送的明文。再次加密, 發送給客戶端。
客戶端—>服務端:客戶端用對稱密鑰加密,被Fiddler截獲后,解密獲得明文。再次加密,發送給服務器端。由於Fiddler一直擁有通信用對稱密鑰enc_key, 所以在整個HTTPS通信過程中信息對其透明。
 
三、Fiddler抓取HTTPS設置
(一)首先對Fiddler進行設置:打開工具欄->Tools->Fiddler Options->HTTPS
 
選中Capture HTTPS CONNECTs,因為我們要用Fiddler獲取手機客戶端發出的HTTPS請求,所以中間的下拉菜單中選中from remote clients only。選中下方Ignore server certificate errors.
 
Fiddler抓包之app抓包
1.保證電腦和手機連接的是同一個無線網,可以直接用手機測試也可以用模擬器
抓取http請求
1.設置手機
找到手機連接的wif,雙擊后點擊修改網絡---將代理改為為手動代理-----
1)服務器主機名為電腦的ip地址(cmd ipconfig查看)
2)服務器端口設定為8888,必須為8888固定的 ,
3)ip為DHCP點擊保存
 
2.設置Fiddler
菜單欄點擊Tools-Options-Connections  勾選Allow remote computers to connect選項 ,端口改為固定的8888  勾選一下Monitor all connections選項 點擊OK
 
3.設置完畢后,點擊手機端的app,Fidder就會出現請求信息了。
抓取https請求
1)Android手機
1.設置Fiddler
菜單欄點擊Tools-Options-HTTPS勾選以下3項
2.在手機端安裝一下證書
1.在手機瀏覽器輸入以下網址,中間為電腦的ip地址,注意替換
2.輸入后進入以下畫面,點擊紅線標注部分下載證書
有的安卓手機比如我的華為,點擊紅線部分下載證書后,網頁轉到無證書頁面。
此時可以百度 Fiddler證書安裝問題。解決方法如下
在電腦運行欄輸入cmd  進入后
1. cd "C:\Program Files (x86)\Fiddler2"      cd后面為Fiddler安裝路徑 這一步為進入Fiddler
2.  輸入  makecert.exe -r -ss my -n "CN=DO_NOT_TRUST_FiddlerRoot, O=DO_NOT_TRUST, OU=Created by http://www.fiddler2.com" -sky signature -eku 1.3.6.1.5.5.7.3.1 -h 1 -cy authority -a sha1 -m 120 -b 09/05/2012
然后在進入手機瀏覽器輸入 http://192.168.1.107:8888/  此時就可以下載證書了。
如果手機自動安裝的話,直接就可以截取https的包了。
如果手機不自動安裝的話,自己要找到下載路徑自己點擊安裝。
如果只想抓取某個app的請求的話
1. 點擊Filters進行設置
粘貼host地址的時候要去掉host:后粘貼到上面框里
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM