隨著網際網路的不斷發展,人們對網路的使用越來越頻繁,通過網路進行購物、支付等其他業務操作。而一個潛在的問題是網路的安全性如何保證,一些黑客利用站點安全性的漏洞來竊取用戶的信息,使用戶的個人信息泄漏,所以站點的安全性變得很重要。

Web 系統的安全性測試包括以下內容:

(1)Web 漏洞掃描

(2)伺服器端信息測試

(3)文件和目錄測試

(4)認證測試

(5)會話管理測試

(6)許可權管理測試

(7)文件上傳下載測試

(8)信息泄漏測試

(9)輸入數據測試

(10)跨站腳本攻擊測試

(11)邏輯測試

(12)搜索引擎信息測試

(13)Web Service 測試

(14)其他測試

本章節主要給大家介紹第(6)點——許可權管理測試

目前存在著兩種越權操作類型:橫向越權操作和縱向越權操作。前者指的是攻擊者嘗試訪問與其擁有相同許可權的用戶的資源;而後者指的是一個低級別攻擊者嘗試訪問高級別用戶的資源。如圖12-18 所示

許可權管理測試更多的是進行人工分析,自動化工具無法了解頁面的具體應用場景及邏輯判斷過程。因此這裡的測試需要首先測試人員理解測試業務系統的邏輯處理流程,並在此基礎上進行如下測試:

?>> 頁面是否進行許可權判斷;

? >>頁面提交的資源標誌是否與已登錄的用戶身份進行匹配比對;

? >>用戶登錄後,伺服器端不應再以客戶端提交的用戶身份信息為依據,而應以會話中保存的已登錄的用戶身份信息為準;

?>>必須在伺服器端對每個請求URL 進行鑒權,而不能僅僅通過客戶端的菜單屏蔽或者Disable 按鈕來限制。

(1)橫向越權測試

橫向越權測試包括兩個方面:一是基於用戶身份處理的橫向越權操作測試;二是基於資源ID處理的橫向越權操作測試。

Web 系統正常運行時,系統存在一個身份級別的控制,如某個頁面(testingba.com/abc.html)提交的參數中是否有一個代表用戶身份的標誌(如operator)或有一個代表資源的標誌(如resource_id)。具體的測試步驟如下:

步驟1:運行WebScarab,選中Intercept requests。

步驟2:打開瀏覽器,在代理伺服器地址中配置地址為127.0.0.1,埠為8008。

步驟3:使用用戶A 的身份進行登錄。

步驟4:進入testingba.com/abc.html 頁面,提交數據。

步驟5:在彈出的對話框中的URLEncoded 頁面中,更改用戶身份標誌(如operator)或更改資源標誌(resource_id)參數,更改值為用戶B 所屬的用戶身份標誌或資源標誌,再單擊Accept Changes 按鈕提交。

步驟6:觀察伺服器處理,伺服器返回登錄失敗。

說明:如果參數是基於GET 方式的URL 傳遞,則不需要通過WebScarab 工具,直接在URL 中修改相關信息提交即可。

(2)縱向越權測試

使用橫向越權的測試方法同樣可以對縱向越權進行測試,如果從代碼的角度來測試,也可以對該功能進行全面的覆蓋測試。主要包括三個方面:基於菜單URL 測試、基於源代碼測試和漏洞掃描。

1)基於菜單URL 測試主要是發現應用中是否存在URL 縱向越權操作,測試步驟如下:

步驟1:以超級管理員身份登錄Web 系統。

步驟2:單擊右鍵,在彈出菜單中選擇「查看源文件」。

步驟3:在源文件中查找管理菜單(如用戶管理)的URL 鏈接,並拷貝該URL 鏈接地址。

步驟4:退出登錄,再使用普通用戶身份登錄該Web 系統。

步驟5:在瀏覽器地址欄中輸入步驟3 中拷貝的URL 鏈接地址,並訪問該URL。

步驟6:觀察普通用戶是否能登錄「用戶管理」頁面,並進行用戶管理操作。正常的是普通用戶不能訪問「用戶管理」的URL 地址。

2)基於源代碼測試主要是發現頁面中是否存在縱向越權操作。假設源代碼存放的目錄為c:webtest,頁面為JSP,測試步驟如下:

步驟1:在「開始」→「運行」中輸入cmd 命令,運行cmd 應用程序。

步驟2:切換到源代碼所在的目錄。

步驟3:輸入命令dir /B *.jsp>test.html。

步驟4:使用UltraEdit 編輯器打開test.html 文件。

步驟5:將^p 的內容替換為">test^pp<a href="192.168.1.1/webapp/,並保存修改。

步驟6:使用瀏覽器打開test.html 文件。

步驟7:依次單擊頁面中的test 鏈接,觀察訪問結果,並進行記錄。

步驟8:使用低級別的用戶身份登錄Web 系統,保持瀏覽器窗口,重複步驟7 的操作。

步驟9:觀察結果,結果應該是不能訪問頁面,系統提示相關信息。

3)漏洞掃描主要是使用掃描工具來測試頁面中是否存在縱向越權操作,測試步驟如下:

步驟1:安裝AppScan 掃描工具。

步驟2:選擇File→New 選項,新建掃描,掃描的模板設置為Default,並單擊Next 按鈕。

步驟3:在Starting URL 中輸入待掃描的目標伺服器域名或IP 地址,不修改其他項配置,單

擊Next 按鈕。

步驟4:設置Recorded Login 的值為默認值(recommended method),單擊Next 按鈕。

步驟5:在彈出的頁面中,用許可權較高的用戶身份登錄(如管理員admin 等)。

步驟6:關閉頁面,彈出如圖12-19 所示的對話框,單擊OK 按鈕。

步驟7:不修改任何參數,單擊Next 按鈕。

步驟8:不修改參數,選擇Start a full automatic scan,單擊Finish 按鈕完成設置,並開始掃描。

步驟9:掃描完成後,保存掃描結果,如user.scan。

步驟10:重新開始再掃描一次,重複步驟1~3。

步驟11:在步驟4 中選擇用戶身份時,選擇NoLogin 單選項,如圖12-20 所示,單擊Next

按鈕。

步驟12:在彈出的配置對話框中(即步驟7 的對話框)中單擊Advanced Test Settings 按鈕,

彈出如圖12-21 所示的對話框,單擊Configure 按鈕。

步驟13:彈出如圖12-22 所示的窗口,單擊Add 按鈕,添加已掃描的結果文件,在此步驟中

添加步驟9 保存的結果文件。

步驟14:單擊OK 按鈕返回掃描配置對話框(即步驟7 的對話框),單擊Next 按鈕。

步驟15:在步驟8 所示對話框中,不需修改參數,單擊Finish 按鈕開始進行越權掃描。

步驟16:掃描完成後保存結果,並對結果進行分析,掃描的結果文件中不應提示存在漏洞。

推薦閱讀:

相关文章