抓包工具的使用


  在被測接口並沒有明確的接口文檔給出時,我們需要借助抓包工具來幫助測試,利用抓包工具我們幾乎可以獲得接口文檔中能給你的一切。常見的抓包工具有Charles和Fiddler, Fiddler只能用在Windows平台, 而Charles可用於Windows, Mac, IOS和Android多平台。

  抓包的原理是通過成為電腦或者移動設備的代理截取請求和請求結果達到分析抓包的目的。就是說,咱們的請求從客戶端發送,直到本地客戶端顯示出結果是經過了幾個步驟的:請求發送給服務端,服務端接收請求並處理,服務端將結果返回給客戶端。代理就是在客戶端以及服務端之間設一道關卡,可以監控到來往的數據包,並且可以將其篡改。

fiddler

 

Charles

一、安裝

下載地址:https://www.charlesproxy.com/download/

破解攻略:https://www.zzzmode.com/mytools/charles/

按照上面的內容,很容易就能安裝好我們要的 Charles,打開如下:

 

Charles 提供了兩個不同的視圖方式:Structure & Sequence

Structure 是將請求按照域名進行分類,按照路徑逐級分類:

 

Sequence 則是將請求按照訪問時間先后順序分類:

 

二、基本配置

  上面我們提到,抓包工具其實是代理進行的,那么我們怎么設置代理的端口呢?

  Proxy ==>  Proxy Settings ==> Proxies ==> Port ,默認是 8888,這里我們不予更改,如果端口被占用,可以考慮修改此端口號進行抓包,將客戶端(瀏覽器/移動端)的代理端口也設置成 8888 。Charles 才能正確建立代理

  那么還有一個問題,我們怎么設置只抓取某個 ip 的請求呢?無關請求,我們不需要,比如某輸入法,qq 等,是我們不需要的請求;而且,一般來講,我們是抓取跟后台交互的請求,也就是說 js,css,jpg 等這些圖片,我們是不需要抓取的,那么怎么過濾這些無關請求呢?

  比如說,我們只要博客園的請求,那么我們就設置:Proxy ==> Recording Settings ==> Include ==> Add ==> Host 內填入想要抓取(博客園)的域名 ==> OK ==> OK

 

三、抓取 Windows 請求

  抓取瀏覽器請求很簡單,跟上面說明好的配置 ok 就成,假設我們也連接了移動端設備,Proxy 內選擇 Windows Proxy 即可

  那么怎么抓取 https 請求呢?

 

四、抓取移動端請求(Android 為例)

  為什么用 Android 舉例呢?因為本人用的就是小米6(Are you OK?),這里待補充,具體做法就是手機上要安裝 Charles 證書,才能抓取到

五、篡改請求,攔截響應

   僅僅知道怎么抓包遠遠不夠,還需要掌握如何利用抓包工具對要發往服務器的請求與進行攔截並篡改,以及對服務端返回的數據進行攔截,篡改返回的數據。那么你可能會問了,為什么要改這些數據呢?

在我們的接口測試中,利用抓包工具攔截請求修改的話,可以初步驗證該接口的某些問題。比如說:我們在前端頁面上下拉框選擇一個選項,然后查詢,假設不能修改請求,就只能發送選擇的請求;那么假設我們攔截了,修改成下拉框沒有的內容,再發往服務器,就能驗證前后端是否有校驗。如果服務器接受了下拉框不存在的請求並且處理,說明后端是沒有校驗的。還有很多情況,例如修改 cookie ,前端限制了輸入字符串的長度等,都可以通過接口去測試后端是否校驗。

  那么為什么我們要攔截返回的數據,修改在頁面展示的情況呢?還是一樣的,假設我們一個表單保存后,重定向到顯示的列表,數字有位數限制,比如兩位小數,那么我們可以修改返回的數據。

 

具體如何攔截修改呢?

  假設,我們抓取 http://doc.nnzhp.cn/  信息,篡改請求的內容,或者修改搜索的內容:

  1、首先我們抓一下 http://api.nnzhp.cn/api/user/stu_info?stu_name=%E5%B0%8F%E9%BB%91 的響應結果,並且對相應的 url和路徑打斷點,這里要注意,這里的斷點有個類似於作用域的范圍,假設我們對某個路徑進行斷點,那么代表該路徑下的所有請求都要會被攔截。

 

2、接着,我們清空 Charles 內的請求,然后去瀏覽器再請求一下該鏈接,將攔截的請求修改,看看結果:

發現瀏覽器頁面一直在跳轉,但是沒結果,這說明請求成功攔截了,我們看看 Charles ,成功攔截下了請求,在 Edit Request 內可對請求進行修改,再發送到服務期內,我們將"小黑"改成"小白"試試:

修改為"小白",發送到服務器:

返回的結果如下:

這個返回的結果,我們也是可以修改的,也就是修改相應內容,我們把第一條"小白"改成"小王八",其他的不變,看看瀏覽器結果:

 

 

可以看到,我們發送的請求為 小黑,接收到的結果為:小王八+小白,這里舉的例子是對 get 請求進行修改,那么 post 請求其實是一樣的。

注意,斷點打完了記得取消掉,否則請求將會被攔截哦


免責聲明!

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



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