4種抓包工具的對比javascript
1、httpwatch:html
1. httpwatch與IE和firefox瀏覽器集成,但不支持chrome;httpwatch界面清晰直觀,發送請求後能夠快速簡單的查看Cookies, Headers, Query Strings and POST data,可以經過頁面分組處理多頁面場景。前端
2. 實時分級時間展現圖可以展現一個http/https請求的處理過程;經過不一樣的顏色展現網絡請求計時,如DNS查詢,tcp鏈接;以瀑布形式展現瀏覽器事件,例如從瀏覽器渲染和頁面加載計時就開始了,能夠自動檢查性能問題。java
3. 安裝簡單,不須要設置代理和證書;提供接口API能夠被大部分編程語言自動化調用、錄製、保存結果。android
4. 但只能看不能修改ios
2、Fiddler:web
1.Fiddler是一個獨立的應用,能夠調試PC、Mac或Linux系統和移動設備的之間的通訊,支持大部分框架如java、.net、java、Ruby,須要設置代理。chrome
2.可以暫停Http通信,而且容許修改請求和響應方便進行安全測試,也能夠設置檢查點作功能測試。編程
3.經過暴露HTTP頭,用戶能夠看見哪些頁面被容許在客戶端或者是代理端進行緩存。若是要是一個響應沒有包含Cache-Control頭,那麼他就不會被緩存在客戶端。windows
4.能夠經過Composer進行接口測試。
3、科來網絡分析系統
1.科來網絡分析系統是一款專業的經過抓取網絡數據包進行網絡檢測,網絡協議分析工具,可實時監測網絡傳輸數據,全面透視整個網絡的動態信息。除了能實時檢測每臺電腦的上網狀況,郵件收發狀況,網絡登陸狀況,網絡流量外,還具備強大的數據包解碼分析功能,可診斷網絡故障,定位網絡瓶頸,檢測網絡安全隱患,支持多種協議。
2.通常用於抓取其餘協議包
4、firebug
一、Firebug是firefox下的一個擴展,它除了能進行網絡分析還可以調試全部網站語言,如js、Html、Css等,支持各類瀏覽器如IE、Firefox、Opera,、Safari。
2. Firebug是開源工具,可以將頁面中的CSS、javascript以及網頁中引用的圖片載入所消耗的時間以矩狀圖呈現出來,方便咱們對網頁進行調優。
3.Firebug編輯、刪改任何網站的CSS、HTML、DOM 以及JavaScript 代碼,能夠經過小箭頭定位頁面元素。
轉載自 幽幽草哈哈 http://www.51testing.com/html/53/462853-3717382.html
-------------------------------------------------------------------------------------------------------------------------------
瞭解過網絡安全技術的人都知道一個名詞「抓包」。那對於局外人,必定會問什麼是抓包?考慮到,你們的技術水平不一,我儘量用非專業的口吻簡單的說一下。
抓包就是將網絡傳輸發送與接收的數據包進行截獲、重發、編輯、轉存等操做,也用來檢查網絡安全。抓包也常常被用來進行數據截取等。黑客經常會用抓包軟件獲取你非加密的上網數據,而後經過分析,結合社會工程學進行攻擊。因此,學會抓包,對於學好網絡安全技術十分重要。
在咱們作接口測試的時候,常常須要驗證發送的消息是否正確,或者在出現問題的時候,查看手機客戶端發送給server端的包內容是否正確,就須要用到抓包工具。而工程師和程序經常使用的抓包工具備哪些呢?今天咱們就來簡單聊一聊最經常使用的2種。
Fiddler是在windows上運行的程序,專門用來捕獲HTTP,HTTPS的。
wireshark能獲取HTTP,也能獲取HTTPS,可是不能解密HTTPS,因此wireshark看不懂HTTPS中的內容。
總結,若是是處理HTTP,HTTPS 仍是用Fiddler, 其餘協議好比TCP,UDP 就用wireshark。
1、Fiddler
當啓動fiddler,程序將會把本身做爲一個代理,因此的http請求在達到目標服務器以前都會通過fiddler,一樣的,全部的http響應都會在返回客戶端以前流經fiddler。
Fiddler能夠抓取支持http代理的任意程序的數據包,若是要抓取https會話,要先安裝證書。
Fiddler的工做原理
Fiddler 是以代理web服務器的形式工做的,它使用代理地址:127.0.0.1, 端口:8888. 當Fiddler會自動設置代理, 退出的時候它會自動註銷代理,這樣就不會影響別的程序。不過若是Fiddler非正常退出,這時候由於Fiddler沒有自動註銷,會形成網頁沒法訪問。解決的辦法是從新啓動下Fiddler.
Fiddler 如何捕獲Firefox的會話
能支持HTTP代理的任意程序的數據包都能被Fiddler嗅探到,Fiddler的運行機制其實就是本機上監聽8888端口的HTTP代理。Fiddler2啓動的時候默認IE的代理設爲了127.0.0.1:8888,而其餘瀏覽器是須要手動設置的,因此將Firefox的代理改成127.0.0.1:8888就能夠監聽數據了。
Firefox 上經過以下步驟設置代理
點擊: Tools -> Options, 在Options 對話框上點擊Advanced tab - > network tab -> setting.
Firefox 中安裝Fiddler插件
修改Firefox 中的代理比較麻煩, 不用fiddler的時候還要去掉代理。推薦你在firefox中使用fiddler hook 插件, 這樣你很是方便的使用Fiddler獲取firefox中的request 和response,當你安裝fiddler後,就已經裝好了Fiddler hook插件,你須要到firefox中去啓用這個插件打開firefox tools->Add ons -> Extensions 啓動 FiddlerHook
Fiddler如何捕獲HTTPS會話
默認下,Fiddler不會捕獲HTTPS會話,須要你設置下, 打開Fiddler Tool->Fiddler Options->HTTPS tab
選中checkbox, 彈出以下的對話框,點擊"YES"
點擊"Yes" 後,就設置好了
Fiddler的基本界面
看看Fiddler的基本界面
Inspectors tab下有不少查看Request或者Response的消息。 其中Raw Tab能夠查看完整的消息,Headers tab 只查看消息中的header. 以下圖
Fiddler的HTTP統計視圖
經過陳列出全部的HTTP通訊量,Fiddler能夠很容易的向您展現哪些文件生成了您當前請求的頁面。使用Statistics頁籤,用戶能夠經過選擇多個會話來得來這幾個會話的總的信息統計,好比多個請求和傳輸的字節數。
選擇第一個請求和最後一個請求,可得到整個頁面加載所消耗的整體時間。從條形圖表中還能夠分別出哪些請求耗時最多,從而對頁面的訪問進行訪問速度優化
QuickExec命令行的使用
Fiddler的左下角有一個命令行工具叫作QuickExec,容許你直接輸入命令。
常見的命令有:
help 打開官方的使用頁面介紹,全部的命令都會列出來
cls 清屏 (Ctrl+x 也能夠清屏)
select 選擇會話的命令
.png 用來選擇png後綴的圖片
bpu 截獲request
Fiddler中設置斷點修改Request
Fiddler最強大的功能莫過於設置斷點了,設置好斷點後,你能夠修改httpRequest 的任何信息包括host, cookie或者表單中的數據。設置斷點有兩種方法
第一種:打開Fiddler 點擊Rules-> Automatic Breakpoint ->Before Requests(這種方法會中斷全部的會話)
如何消除命令呢? 點擊Rules-> Automatic Breakpoint ->Disabled
第二種: 在命令行中輸入命令: bpu http://www.baidu.com (這種方法只會中斷http://www.baidu.com)
如何消除命令呢? 在命令行中輸入命令 bpu
2、Wireshark
Wireshark是另一種抓包工具,這種工具比fiddler更強大,消息量更多。你們可能會問:有了fiddler,爲何還要用wireshark呢?這裏說下,在測試中,發現用fiddler抓包,有些包是沒有抓到的,好比在驗證反做弊信息的時候,反做弊pingback信息的消息用fiddler就沒抓到,用wireshark就抓到了。還有另一種狀況,就是在驗證cna的時候,若是先用fiddler抓包,若是沒有種下cna的時候,之後就永遠沒有cna了,狀況很詭異。解決辦法就是把包卸載了從新安裝,第一次用wireshark抓包。
Wireshark優點:
一、強大的協議解析能力,一到七層全解碼,一覽無遺,對於協議細節的研究特別有幫助。
二、對於https加密流量,只要將瀏覽器的session key 自動導入wireshark,Wireshark能夠自動解密https流量。
Wireshark不足之處:
儘管能夠自定義過濾列表,但爲了抓取一個特定TCP Flow /Session 流量須要寫一個長長的過濾列表,這對於初學者很不友好。
操做實例:
wireshark是捕獲機器上的某一塊網卡的網絡包,當你的機器上有多塊網卡的時候,你須要選擇一個網卡。
點擊Caputre->Interfaces.. 出現下面對話框,選擇正確的網卡。而後點擊"Start"按鈕, 開始抓包:
1、WireShark 界面
一、Display Filter(顯示過濾器),用於過濾;
二、Packet List Pane(封包列表),顯示捕獲到的封包,有源地址和目標地址,端口號;
三、Packet Details Pane(封包詳細信息), 顯示封包中的字段;
四、Dissector Pane(16進制數據);
五、Miscellanous(地址欄,雜項)。
2、Wireshark 顯示過濾
使用過濾是很是重要的,初學者使用wireshark時,將會獲得大量的冗餘信息,在幾千甚至幾萬條記錄中,以致於很難找到本身須要的部分。搞得暈頭轉向。過濾器會幫助咱們在大量的數據中迅速找到咱們須要的信息。
過濾器有兩種:
一、一種是顯示過濾器,就是主界面上那個,用來在捕獲的記錄中找到所須要的記錄
二、一種是捕獲過濾器,用來過濾捕獲的封包,以避免捕獲太多的記錄。 在Capture -> Capture Filters 中設置。
3、保存過濾
在Filter欄上,填好Filter的表達式後,點擊Save按鈕, 取個名字。好比"Filter 102",Filter欄上就多了個"Filter 102" 的按鈕。
4、過濾表達式的規則
表達式規則
1.協議過濾 好比TCP,只顯示TCP協議。
2.IP 過濾
好比 ip.src ==192.168.1.102 顯示源地址爲192.168.1.102,ip.dst==192.168.1.102,目標地址爲192.168.1.102。
3.端口過濾
tcp.port ==80, 端口爲80的
tcp.srcport == 80, 只顯示TCP協議的願端口爲80的。
4.Http模式過濾
http.request.method=="GET", 只顯示HTTP GET方法的。
5.邏輯運算符爲 AND/ OR
5、封包列表(Packet List Pane)
封包列表的面板中顯示,編號,時間戳,源地址,目標地址,協議,長度,以及封包信息。 你能夠看到不一樣的協議用了不一樣的顏色顯示。 你也能夠修改這些顯示顏色的規則, View ->Coloring Rules.
6、封包詳細信息 (Packet Details Pane)
這個面板是咱們最重要的,用來查看協議中的每個字段。各行信息分別爲
·Frame: 物理層的數據幀概況
·Ethernet II: 數據鏈路層以太網幀頭部信息
·Internet Protocol Version 4: 互聯網層IP包頭部信息
·Transmission Control Protocol: 傳輸層T的數據段頭部信息,此處是TCP
·Hypertext Transfer Protocol: 應用層的信息,此處是HTTP協議
7、Wireshark與對應的OSI七層模型
8、TCP包的具體內容
從下圖能夠看到wireshark捕獲到的TCP包中的每一個字段。
總結:
總的來講,兩款抓包軟件各有優缺點,選擇的關鍵在於咱們的需求是什麼,固然,對於軟件測試從業者而言,兩款軟件都是十分有必要學習的~
源:https://baijiahao.baidu.com/s?id=1612020651990482782&wfr=spider&for=pc
-------------------------------------------------------------------------------------------------------
手機端和PC端均可以用的抓包工具:
Charles又名青花瓷,是Mac端的一款截取與分析網絡請求的工具(windows也能夠用),在網絡開發中使用其做分析,能夠大大提升咱們的開發效率,部分好處以下:
下面簡單講解一下mac電腦跟iPhone手機,window電腦跟安卓手機的使用
網址:http://charles.iiilab.com/
此網址會持續更新,下載地址跟破解方法都有。
或者去從官網下載連接http://www.charlesproxy.com/download
通常可使用三十天。
這裏網上能夠找到破解的相對版本的charles.jar文件,以mac來講在應用程序裏面右鍵Charles--顯示包內容--Contents--Java--charles.jar(替換掉你下載的)
頂部工具欄:Proxy-> Proxy settings ->proxies :勾選enable transparent http proxying
如圖:
在上面的設置步驟2以後,就能解析到瀏覽器上面的http請求了,可是https請求會顯示unkonwn 就是不能解析https請求,如圖中提示:
因此須要設置SSL Proxying。
頂部工具欄:Proxy-> SSL Proxying Settings->SSL Proxying:勾選Enable SSL Proxying :
[圖片上傳失敗...(image-1fc441-1558231863214)]
添加host,端口是443 這裏是把全部的host都設置進去
[圖片上傳失敗...(image-ee3047-1558231863214)]
固然也能夠設置指定的host,端口不變 ,這樣請求就解析出來了。
如圖設置:
[圖片上傳失敗...(image-91b702-1558231863214)]
模擬器請求就出如今charles了
[圖片上傳失敗...(image-94fc69-1558231863214)]
設置
[圖片上傳失敗...(image-33feee-1558231863214)]
彈出:
[圖片上傳失敗...(image-be9c90-1558231863214)]
經過上面的提示告訴咱們:
一須要在手機上面手動代理的IP地址:192.168.27.117,端口號:8888.
二須要去https://chls.pro/ssl 下載證書
能夠經過官網:https://www.charlesproxy.com/documentation/using-charles/ssl-certificates/
看到詳細的解釋:
這樣就能夠經過手機的請求,在charles上面看到抓到數據請求了。
(1)如圖
[圖片上傳失敗...(image-3f70c9-1558231863214)]
(2)而後點擊手機訪問你要抓包那個頁面,會跑到斷點上。
手機截圖:
Charles截圖:
[圖片上傳失敗...(image-4c95c2-1558231863214)]
(3)修改請求報文,在第(2)步的charles截圖定位到Edit Request上面
[圖片上傳失敗...(image-e6342-1558231863214)]
(4)修改返回報文,在第(3)步上的截圖上面點擊Execute,而後在切換到Edit Response上面
[圖片上傳失敗...(image-89eabf-1558231863214)]
以上就是在mac上經過抓包調試ios應用簡單實踐,後面繼續講一下windows下面的Charles使用。
(3)進入手機設置-->更多設置--->系統安全 如圖:
(4)在系統安全裏面選擇從SD卡安裝,爲會看到你從瀏覽器下載的文件downloadfile.crt
點擊安裝。出現如圖:
(1)使用host過濾,首先在 Charles 的菜單欄選擇 Proxy->Recording Settings,而後選擇 Include 欄,選擇Add,而後填入須要監控的協議,主機地址,端口號,這樣就達到了過濾的目的。以下圖:
在開發中,咱們有時候想要模擬一下網絡慢的狀況,這時候Charles他是能夠幫助到你的,在Proxy->Throttle Setting,而後選擇Enable Throttling,在Throttle Preset下選擇網絡類型便可,具體設置你能夠自行拿捏。
請求重定向的做用是什麼呢?開發中通常都是測試環境,若是咱們想對比一下和線上版本的區別的話,能夠將測試的請求重定向到正式環境下。在選擇 Tools->`Map Remote下:
android 7.0以上在隱私安全上作了嚴格限制,就算你在安全與隱私--從存儲設備安裝證書(安裝了charles.pem證書),仍是沒有辦法抓https,這裏須要配置一下。
首先須要將你要抓包的域名地址加入到SSL Proxying裏面。Proxy--SSL Proxying Setting
而後還須要在項目清單文件裏面配置:
在res下面xml文件夾下面建:network_security_config.xml文件
這樣就能夠抓取https了。
應對前端手機端的開發,上面基本上已經足夠