學點高階測試工程師才懂的技術:手把手教你進行越權測試

博為峰網校發表於2021-04-15

怎樣進行越權測試?

要了解越權測試,首先要先了解什麼是越權攻擊。

越權攻擊顧名思義就是超越了自己的許可權範圍,是指使用者透過某種方式獲取到了不屬於自己的許可權。越權攻擊分為水平越權和垂直越權。加我VX:atstudy-js 回覆“測試”,進入軟體測試學習交流裙~~

下面我們先來說一下水平越權

水平越權:攻擊者嘗試訪問與他許可權相同的使用者資源。比如說在修改使用者資訊時,在瀏覽器上使用者可以看到該使用者的ID是多少,如下圖

這裡如果攻擊者透過猜測或者其他途徑獲取到了其他使用者的ID是多少,那麼就可以在瀏覽器的位址列裡將ID直接換成要攻擊的使用者ID,就可以訪問被攻擊使用者的使用者資訊並對其進行修改。

再舉一個例子,比如說一個使用者在某網站上買了一件商品,但是地址填錯了,要去修改地址

我們看到位址列裡也有訂單號的ID,那麼如果攻擊者獲取到了其他使用者的訂單號資訊,就可以輕易的對訂單資訊進行修改。

接下來我們再來說一下垂直越權

垂直越權:是指攻擊者嘗試訪問更高階的許可權內容。

比如使用者A只有檢視訂單的許可權,頁面的URL如下圖

使用者B有檢視訂單的許可權和檢視賬單的許可權,URL如下

這種情況如果使用者A猜測到了檢視賬單的路徑,那麼就可以直接透過訪問路徑的方法去訪問賬單。

下面我們根據之前講述的兩種攻擊方式的邏輯來寫一下怎樣進行越權測試。

首先是水平越權測試,這裡我們就需要先準備兩個使用者A和B,這兩個使用者有相同的使用者許可權。用使用者A登陸系統去嘗試獲取或者修改使用者B的資訊,具體用例如下

接下來講一下垂直越權測試,垂直越權測試也是需要準備兩個使用者C和D,這兩個使用者要有不同的使用者許可權,比如說A使用者有編輯訂單的許可權,B使用者沒有,下面我們來設計一下測試用例

當然,現在好多網站為了安全起見,操作使用者資訊時,已經不在位址列裡顯示這些敏感資訊了,那如果不顯示的話,越權測試我們該如何進行呢?

下面我們再來說一下如何利用工具進行越權測試。這裡我們使用到的工具是Burp Suite。

首先我們用使用者C登陸系統,然後將頁面定位到編輯使用者資訊的頁面,然後將Burp Suite切換到proxy,點選一下intercept is off,按鈕變成intercept is on開始抓包。

然後在編輯使用者的頁面,點選儲存按鈕,這時候我們就會抓取到一些資料,如下圖

我們可以看到,這裡有使用者的id資料。我們需要將這段資訊儲存到Repeater供回放時使用。操作如下圖

這個時候我們切換到Repeater就可以檢視到我們之前抓取到的資料了。加我VX:atstudy-js 回覆“測試”,進入軟體測試學習交流裙~~

接下來我們透過F12去獲取到使用者D的id,或者是用上述同樣的方式獲取到使用者D的id,將使用者D的id,替換到我們儲存到Repeater中的使用者C的id,如下圖

替換完成,點選“Go”,可在右側檢視執行的結果。

那麼如何根據執行的結果判斷這裡是否存在越權漏洞呢?

執行的結果有兩種,成功和失敗。如果結果返回失敗,那麼我們可以認為這個地方不存在越權攻擊的危險;如果結果返回成功,也有兩種情況,一種是返回成功,使用者D的資訊確實被修改了,這種我們就可以認為這個地方存在越權的風險;另一種情況是返回成功,但是去檢視使用者D的資訊時,並沒有被修改,這種情況我們也可以認為是沒有確認的風險。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31407649/viewspace-2768253/,如需轉載,請註明出處,否則將追究法律責任。

相關文章