『壹』 抓包工具 Fiddler抓包之後的數據分析
原文:
https://blog.csdn.net/quiet_girl/article/details/50579570
(1)下圖是登錄一個網路網站的登錄操作的抓包,在Inspectors中能看到HTTP Request數據和HTTP Response數據。
[ 圖1:HTTP REQUEST 和 HTTP RESPONSE 數據 ]
(2)Fiddler左下角有個命令行工具叫做QuickExec,可以直接輸入命令,常見的命令有:
help 打開官方的使用頁面介紹,所有的命令都會列出來
cls 清屏 (Ctrl+x 也可以清屏)
select 選擇會話的命令
?.png 用來選擇png後綴的圖片
bpu 截獲request
設置完畢,在手機端操作登錄網路雲盤賬號
[ 圖2:設置Rules --> Automatic Breakpoints --> Before Requests後請求的頁面 ]
對於這個截取的頁面可以進行數據的更改,更改之後點擊綠色的」Run to Completion「即可進行更新數據後的登錄操作,操作結果是由更新之後的數據決定的。
(2)Fiddler截取HTTP Response數據
有兩種方式實現截取HTTP Response數據:
A. 第一種: Rules --> Automatic Breakpoints --> After Requests:這種方法會中斷所有的會話
如何消除此命令呢? 點擊Rules-> Automatic Breakpoint ->Disabled
B. 第二種: 在命令行中輸入命令: bpafter www..com (這種方法只會中斷 www..com )如何消除命令呢? 在命令行中輸入命令 bpafter
下面是一個手機端小恩愛軟體的例子:
在手機端操作登錄小恩愛軟體,並打開個人中心帶有圖片的地方,
設置完畢之後,操作小恩愛,打開帶有圖片的地方,將帶有圖片的那個url(如何觀察帶有圖片:在Inspectors tab下,可以在下面的response框中觀察到圖片),將其拖入」Auto Responser「 下,在此tab最下面,可以重新選擇圖片文件進行更改,點擊」Save「之後則小恩愛上的個人頭像會變成更改之後的圖片。
[ 圖5:截取HTTP Response之後的頁面 ]
[ 圖6: Find a file選擇需要上傳的圖片 ]
下面可以在Fiddler Script下面進行編碼,編碼完畢,點擊」Save Script「,那麼這段編碼就會對你後續的操作起作用。
這里編碼是把 www..com 的會話變成綠色的,編碼內容:if (oSession.HostnameIs(" www..com ")) { oSession["ui-color"] = "green"; },
『貳』 Charles ios抓包
本地開發項目的時候,我們可以通過谷歌瀏覽器的debug模式來看request以及response的數據,但是如果我們開發移動端真機項目呢?或者真機線上出現問題如何抓取數據查看介面入參和出參呢?這就需要用到「抓包」
抓包就是通過工具抓取應用的介面數據然後通過分析數據得出問題結論的一種常用的工作方法。下面簡述一下在iOS上面安裝Charles並且實現抓包的過程,抓取范圍包括web/APP內嵌web/小程序原生/小程序內嵌web等
【1】獲取PC的IP地址和埠
在Charles菜單欄 -> Help -> Local IP Address中可以查看PC的IP地址。
一般Charles埠是默認的8888,可以從Charles菜單欄 -> Proxy -> Proxy Settings查看
【2】配置iPhone代理
設置 -> 無線區域網 -> 區域網信息(i) -> 配置代理 -> 手動
在配置iPhone代理完畢後,就可以通過Structure或者Sequence窗口預覽HTTP請求的數據了。但由於HTTPS請求被加密過,預覽請求時只能預覽到亂碼數據。要預覽到HTTPS請求的數據明文,需要PC和iPhone安裝證書授權。
【1】PC安裝證書
在Charles菜單欄 -> Help -> SSL Proxying -> Install Charles Root Certificate中可以為PC安裝證書
這樣,就可以使用Charles中抓包iPhone發出的HTTPS請求並預覽明文數據了。
【3】 啟動抓包SSL許可權
在Charles菜單欄 -> Proxy -> SSL Proxying Settings中勾選Enable SSL Proxying,然後在Locations中添加需要抓包的Host和Port即可。或者直接寫*埠寫443圖示如下:
可以抓取對應添加的域名的Https的介面的數據
『叄』 Fiddler怎麼對IPhone手機的數據進行抓包分析
配置Fiddler, 允許"遠程連接"
打開Fiddler, Tools-> Fiddler Options 。 (配置完後記得要重啟Fiddler).
選中"Decrpt HTTPS traffic", Fiddler就可以截獲HTTPS請求
選中"Allow remote computers to connect".是允許別的機器把HTTP/HTTPS請求發送到Fiddler上來
大功告成,開始抓包
現在IPhone上的應用(比如Safari, Firefox,itunes, App Store)發出的HTTP/HTTPS都可以被Fiddler獲取。
實例:打開Safari,
1. 輸入http://www.cr173.com/z/qvodplayer/. 看看Fiddler能否捕獲。
2. 輸入https://dynamic.12306.cn/otsweb/ 看看Fiddler能否捕獲。
是不是HTTP和HTTPS都截獲到了????, 你不但能截獲, 還可以下斷點,修改Request, 修改Response, Do what you want.
用完了, 記得把IPhone上的Fiddler代理關閉, 以免IPhone上不了網。
只能捕獲HTTP,而不能捕獲HTTPS的解決辦法
有時候會發現, Fiddler 只能捕獲IPhone發出得HTTP請求, 而不能捕獲HTTPS請求, 原因可能是證書沒有安裝好。 解決辦法是:
1. 先把IPhone上所有的Fiddler證書刪除 (拿出IPhone, 點」設置「->「通用」->"描述文件")
2. 安裝上面的方法,重新安裝Fiddler證書
以上內容來自:http://blog.csdn.net/rztyfx/article/details/8861201
『肆』 如何對抓到的數據包分析
首先我們打開wireshark軟體的主界面,在主界面上選擇網卡,然後點擊start。wireshark即進入抓包分析過程。在本篇我們選擇乙太網,進行抓包。接下來再界面我們可以看到wireshark抓到的實時數據包。我們對數據包的各個欄位進行解釋。
1.No:代表數據包標號。
2.Time:在軟體啟動的多長時間內抓到。
3.Source:來源ip。
4.Destination: 目的ip。
5.Protocol:協議。
6.Length:數據包長度。
7.info:數據包信息。接下來再界面我們可以看到wireshark抓到的實時數據包。我們對數據包的各個欄位進行解釋。接下來我們點擊解析後的某一條數據可以查看數據包的詳細信息。在抓包過程中,我們可以點擊圖標啟動或者停止。來啟動或者停止抓取數據包。
『伍』 iOS App的tcp、udp數據包抓取與分析教程
在對app進行安全分析時,有時需要檢查app的網路介面請求是否安全,網路協議交互是否可被惡意利用。因此就需要運行app並捕獲其與服務端交互的網路數據進行分析。前面文章已介紹過http、https數據包的捕獲,該篇文章主要介紹捕獲app的tcp、udp流量數據。我們將 使用tcpmp捕獲tcp、udp流量 ,再 通過wireshark過濾、分析app的tcp、udp流量 。
一、tcpmp捕獲app流量
在運行app後,不要馬上關掉app進程,我們要找出與app通信的 服務端ip 或者 埠 以及 網路協議(tcp、udp) ,方便後續wireshark過濾
新開一個終端,ssh再連接一次ios設備,查看app的進程pid(比如該app的進程pid為11524),如下所示
找到app的進程pid後,查看app的網路交互情況,我們使用 lsof ,它可查看系統中的文件使用情況,廣義上網路套接字也屬於文件描述符,因此可以通過lsof查看,如下所示
lsof -i -a -p <pid> #我們上面查看到的進程pid
-i 表示 列出所有網路連接
-a 表示 指定當前用戶
-p 表示 某個進程(pid)
我們即可看到該app網路交互的 網路協議 、 ip 、 埠 等
最後停止tcpmp捕獲app網路數據,結束抓包
二、wireshark過濾分析app流量
參考鏈接:
https://linux.die.net/man/8/lsof
『陸』 如何進行手機APP的數據爬取
Python爬蟲手機的步驟:
1. 下載fiddler抓包工具
2. 設置fiddler
這里有兩點需要說明一下。
設置允許抓取HTTPS信息包
操作很簡單,打開下載好的fiddler,找到 Tools -> Options,然後再HTTPS的工具欄下勾選Decrpt HTTPS traffic,在新彈出的選項欄下勾選Ignore server certificate errors。
設置允許外部設備發送HTTP/HTTPS到fiddler
相同的,在Connections選項欄下勾選Allow remote computers to connect,並記住上面的埠號8888,後面會使用到。
好了,需要的fiddler設置就配置完成了。
3. 設置手機端
設置手機端之前,我們需要記住一點:電腦和手機需要在同一個網路下進行操作。
可以使用wifi或者手機熱點等來完成。
假如你已經讓電腦和手機處於同一個網路下了,這時候我們需要知道此網路的ip地址,可以在命令行輸入ipconfig簡單的獲得,如圖。
好了,下面我們開始手機端的設置。
手機APP的抓取操作對於Android和Apple系統都可用,博主使用的蘋果系統,在此以蘋果系統為例。
進入到手機wifi的設置界面,選擇當前連接網路的更多信息,在蘋果中是一個嘆號。然後在最下面你會看到HTTP代理的選項,點擊進入。
進入後,填寫上面記住的ip地址和埠號,確定保存。
4. 下載fiddler安全證書
在手機上打開瀏覽器輸入一個上面ip地址和埠號組成的url:http://192.168.43.38:8888,然後點擊FiddlerRoot certificate下載fiddler證書。
以上就簡單完成了所有的操作,最後我們測試一下是否好用。
5. 手機端測試
就以知乎APP為例,在手機上打開 知乎APP。下面是電腦上fiddler的抓包結果。
結果沒有問題,抓到信息包。然後就可以使用我們分析網頁的方法來進行後續的操作了。
『柒』 抓包數據怎麼分析
一、抓包中請求組成:請求行、請求頭、空行、請求體
1.請求行:請求行由請求方法欄位、URL欄位和HTTP協議版本欄位3個欄位組成,它們用空格分隔。比如 GET /data/info.html HTTP/1.1。(按我理解,就是請求信息的第一行)
2.請求頭:HTTP客戶程序(例如瀏覽器),向伺服器發送請求的時候必須指明請求類型(一般是GET或者 POST)。如有必要,客戶程序還可以選擇發送其他的請求頭。大多數請求頭並不是必需的,但Content-Length除外。對於POST請求來說 Content-Length必須出現。(按我理解,就是請求的各種信息)
3. 空行不怎麼看的出來:它的作用是通過一個空行,告訴伺服器請求頭部到此為止。(按我理解,可以忽略不計)
4.請求體:瀏覽器真正發送給伺服器的數據。(按我理解是需要提交的參數)
若方法欄位是GET,則此項為空,沒有數據
若方法欄位是POST,則通常來說此處放置的就是要提交的數據
二、響應組成:響應行、響應頭、響應體
1.響應行:響應行一般由協議版本、狀態碼及其描述組成 比如 HTTP/1.1 200 OK。(按我理解,響應信息裡面的第一行)
2.響應頭:響應頭用於描述伺服器的基本信息,以及數據的描述,伺服器通過這些數據的描述信息,可以通知客戶端如何處理等一會兒它回送的數據。(按我理解,就是響應的各種信息)
3.響應體:響應體就是響應的消息體,如果是純數據就是返回純數據,如果請求的是HTML頁面,那麼返回的就是HTML代碼,如果是JS就是JS代碼。(按我理解,就是請求發送後,系統的響應,真正返回給client的東西)