Fiddler(一)

Fiddler:學習scrapy,不僅是知足於網頁上爬去信息的成功樂趣,如今開始接觸爬去手機信息了,很差解決,知道過程不會輕鬆,但本身想去嘗試。QAQ
css

寫這篇博客是基於如下的幾位大神學習筆記,我只是作下總結,裏面會有具體的圖片信息:html

https://blog.csdn.net/playstudy/article/details/18921967
https://blog.csdn.net/a877415861/article/details/79447440
https://www.cnblogs.com/miantest/p/7289694.html

Fiddler:基礎知識前端

Fiddler是強大的抓包工具,它的原理是以web代理服務器的形式進行工做的,使用的代理地址是:127.0.0.1,端口默認爲8888,咱們也能夠經過設置進行修改。

代理就是在客戶端和服務器之間設置一道關卡,客戶端先將請求數據發送出去後,代理服務器會將數據包進行攔截,代理服務器再冒充客戶端發送數據到服務器;
同理,服務器將響應數據返回,代理服務器也會將數據攔截,再返回給客戶端。

Fiddler能夠抓取支持http代理的任意程序的數據包,若是要抓取https會話,要先安裝證書。

HTTP協議web

要分析Fiddler抓取的數據包,咱們首先要熟悉HTTP協議。HTTP即超文本傳輸協議,是一個基於請求與響應模式的、無狀態的、應用層的協議,絕大多數的Web開發,
都是構建在HTTP協議之上的Web應用。

HTTP的工做過程:當咱們請求一個超連接時,HTTP就開始工做了,客戶端先發送一個請求到服務器,請求內容包括:協議版本號、請求地址、請求方式、請求頭和請求參數;
服務器收到請求後作相應的處理,並將響應數據返回到客戶端,響應內容包括:協議版本號、狀態碼和響應數據。前端根據響應數據作相應的處理,就是最終咱們看到的內容

Fiddler的安裝chrome

1.下載安裝包:"http://www.downza.cn/soft/234727.html"
2.下載.net framework 4.6.2 x64(Fiddler Orachestra Beta會須要):"https://www.fixdown.com/soft/3178.html"

Fiddler的配置(手機和電腦鏈接同一網絡)json

1)Fiddler, Tools-> Fiddler Options
    HTTPS:
        1.選中"Fiddler, Tools-> Fiddler Options"——Fiddler就能夠截獲HTTPS請求
        2.選中"Ignore server certificate errors". 
    Connections
        1.選中"Allow remote computers to connect". 是容許別的機器把HTTP/HTTPS請求發送到Fiddler上來
2)查看本機Ip
    ipconfig(192.168.5.147) 
3)IPhone設置代理
    設置 -> 無線局域網 -> 已鏈接網絡旁邊的藍色感嘆號 -> 設置代理
        服務器:192.168.5.147
        端口:8888
4)打開IPhone 的Safari, 訪問 http://192.168.5.147:8888,點"FiddlerRoot certificate" 而後安裝證書
5)檢查是否設置成功
    Iphone:Safari輸入:"http://www.cr173.com/z/qvodplayer/."查看Fiddler可否捕獲

Fiddler使用瀏覽器

Fiddler支持斷點調試技術,當你在軟件的菜單—rules—automatic breakpoints選項選擇before request,或者當這些請求或響應屬性可以跟目標的標準相匹配,
Fiddler就可以暫停Http通信,而且容許修改請求和響應。這種功能對於安全測試是很是有用的,固然也能夠用來作通常的功能測試,由於全部的代碼路徑均可以用來演習。 經過顯示全部的Http通信,Fiddler能夠輕鬆地演示哪些用來生成一個頁面,經過統計頁面(就是Fiddler左邊的那個大框)用戶能夠很輕鬆地使用多選, 來獲得一個WEB頁面的「總重量」(頁面文件以及相關js,css等)你也能夠很輕鬆地看到你請求的某個頁面,總共被請求了多少次,以及多少字節被轉化了。 用戶能夠加入一個Inspector插件對象,來使用.net下的任何語言來編寫Fiddler擴展。
RequestInspectors 和 ResponseInspectors提供一個格式規範的,或者是被指定的(用戶自定義)Http請求和響應視圖。

Fiddler軟件信息欄緩存

基本信息:
    #:順序號,按照抓包的順序從1遞增
    Result:HTTP狀態碼      
    Protocol:請求使用的協議,如HTTP/HTTPS/FTP等
    HOST:請求地址的主機名或域名
    URL:請求資源的位置
    Body:請求大小
    Caching:請求的緩存過時時間或者緩存控制值
    Content-Type:請求響應的類型
    Process:發送此請求的進程ID
    Comments:備註 
    Custom:自定義值

Fiddler的QuickExec的簡單使用安全

一、cls
    cls清屏命令,輸入該命令能夠清空會話列表中全部會話cls清屏命令,輸入該命令能夠清空會話列表中全部會話
二、select
    經過select命令能夠選擇出某一類型HTTP會話的功能。 
    好比選擇出全部的html類型的HTTP會話,命令:select html 
    好比選擇出全部的圖片類型的HTTP會話,命令:select image
三、?
    ?命令能夠查找出網址中包含某些字符的會話信息,好比「?baidu」能夠查找出網址中包含「baidu」字符串的會話信息。
四、help
    執行該命令能夠打開Fiddler官方使用手冊。
五、>,<
    請求body大小的範圍
六、=
    匹配HTTP返回碼(=200)
七、@
    @後面跟Host,能夠匹配域名(@www.baidu.com)
八、dump
    將全部請求打包成saz壓縮包,保存到「個人文檔\Fiddler2\Captures」目錄下    
九、start
    開始監聽請求    
十、stop
    中止監聽請求

 

Insepector:請求(即客戶端發出的數據)和響應(服務器返回的數據)服務器

HTTP Request Headers:
    請求方式:GET
    協議: HTTP/1.1
    Client 頭域:
    Accept: text/html, application/xhtml+xml, image/jxr, */*                             ---------瀏覽器端能夠接受的媒體類型
    Accept-Encoding: gzip, deflate                                                                  ---------壓縮方法
    Accept-Language: zh-CN                                                                          ---------語言類型
    User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.79 Safari/537.36 Edge/14.14393
          ---------客戶端使用的操做系統和瀏覽器的名稱和版本 COOKIE頭域:將cookie值發送給服務器 Transport 頭域: Connection:當網頁打開完成後,客戶端和服務器之間用於傳輸HTTP數據的TCP鏈接是否關閉。keep-alive表示不會關閉, 客戶端再次訪問這個服務器上的網頁,會繼續使用這一條已經創建的鏈接;close表示關閉,客戶端再次訪問這個服務器上的網頁,須要從新創建鏈接。 HOST:主機名或域名,若沒有指定端口,表示使用默認端口80. HTTP Response Headers: 協議:HTTP/1.1 狀態碼:200 Cache頭域: Cache-Control: private ---------此響應消息不能被共享緩存處理,對於其餘用戶的請求無效 Date: Sat, 05 Aug 2017 04:37:43 GMT ---------生成消息的具體時間和日期 Expires: Sat, 05 Aug 2017 04:37:42 GMT ---------瀏覽器會在指定過時時間內使用本地緩存 Cookie/Login 頭域: Set-Cookie: BDSVRTM=264; path=/ ---------把cookie發送到客戶端 Set-Cookie: BD_HOME=1; path=/ Set-Cookie: H_PS_PSSID=1425_21097_22157; path=/; domain=.baidu.com Entity頭域 Content-Length: 202740 ---------正文長度 Content-Type: text/html;charset=utf-8 ---------告知客戶端服務器自己響應的對象的類型和字符集 Miscellaneous 頭域: Bdpagetype: 2 Bdqid: 0x99791efd00036253 Bduserid: 2577220064 Server: BWS/1.1 ---------指明HTTP服務器的軟件信息 X-Ua-Compatible: IE=Edge,chrome=1 Security頭域: Strict-Transport-Security: max-age=172800 ---------基於安全考慮而須要發送的參數:http://www.freebuf.com/articles/web/66827.html Transport頭域: Connection: Keep-Alive 6)TextView:顯示請求或響應的數據。 7)WebForms:請求部分以表單形式顯示全部的請求參數和參數值;響應部分與TextView內容是同樣的。 8)Auth:顯示認證信息,如Authorization 9)Cookies:顯示全部cookies 10)Raw:顯示Headers和Body數據 11)JSON:若請求或響應數據是json格式,以json形式顯示請求或響應內容 12)XML:若請求或響應數據是xml格式,以xml形式顯示請求或響應內容 13)上面是以百度主頁爲例,百度主頁採用的是GET請求,在TextView中沒有請求body,咱們再以無憂行網站登陸接口爲例,它是一個POST請求,除了請求頭外,在TextView中多了請求數據。 GET請求是將請求參數放在url中,而POST請求通常是將請求參數放在請求body中。

Fiddler斷點功能

通訊過程當中,在傳遞信息的中間進行修改後在傳遞,那麼就可使用Fiddler的斷點功能。
一、使用Fiddler的斷點,能夠實現的功能:
    攔截響應數據,並進行相應修改。
    修改請求數據中的頭信息,實現相應功能,好比模擬用戶請求等功能。
    構建請求數據,隨意進行數據提交。
二、Fiddler斷點功能分爲兩種類型:
    響應時斷點 Response斷點
    請求時斷點 Resquest斷點
    
設置響應斷點方法有兩種:
經過可視化操做設置
- Before Requests:攔截全部發送給服務器的請求
- After Responses:攔截全部服務器返回的session
- Disabled :取消斷點
    1.中斷設置
        單擊Fiddler中的Rules–>Automatic Breakpoints–>After Responses 
    2.取消響應中斷設置 
        單擊Fiddler中的Rules–>Automatic Breakpoints–>Disabled
        
經過命令去設置。
    1.響應斷點
        bpafter www.baidu.com  對www.baidu.com進行響應斷點
        bpafter                取消響應斷點
    2.請求斷點
        bpu  www.baidu.com      對www.baidu.com進行請求斷點
        bpu                     取消請求斷點

 

遇到的問題:

1)執行fiddler文件下fiddler.exe 提示下載.net framework 
2)解決Fiddler "creation of the root certificate was not successful」
    1.cd "d:\Program Files\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/2020(大於當前時間)
3)配置瀏覽器代理:(開啓fiddler時,該程序會自動配置瀏覽器代理,致使沒法沒法上網)
    1.chrome -> 設置 -> 高級 -> 打開代理設置 -> 鏈接 -> 局域網設置 -> 代理服務器:不勾選"爲LAN使用代理服務器"
        地址:192.168.5.147 端口:8888
    2.Fiddler軟件會提示"The system proxy was changed.Click to reenable capturing",點擊以後,Fiddler會設置瀏覽器代理
4)只能捕獲HTTP,而不能捕獲HTTPS的解決辦法
    1. 先把IPhone上全部的Fiddler證書刪除 (拿出IPhone,點」設置「->「通用」->"描述文件")
    2. 安裝上面的方法,從新安裝Fiddler證書
相關文章
相關標籤/搜索