­

邏輯漏洞之越權漏洞

前言

上一篇文章中,對邏輯漏洞進行了簡單的描述,這篇文章簡單的說一說邏輯漏洞中的越權漏洞。

參考文獻《黑客攻防技術寶典Web實戰篇第二版》

什麼是越權漏洞?

顧名思義,越權漏洞就是由於設計上的缺陷對應用程式的許可權做的不好。通俗點來說,就是用戶A可以通過某種方式查看到用戶B的個人資訊,或者可以查看管理員C的一些相關資訊。

分類

越權漏洞主要分為水平越權和垂直越權。下面來說一說他們的區別。

水平越權:就是攻擊者嘗試訪問與他相同許可權的用戶的一些資源。舉一個簡單的例子,用戶A在這個應用程式里保存了自己的個人資訊,並且通過相關參數直接獲取,用戶B在保存個人資訊的頁面,輸入了A用戶的參數,直接查看到了A用戶的個人資訊。

為什麼會出現這種情況呢?我們知道通常情況下,一個應用程式的功能流程是:登陸=>提交請求=>驗證許可權=>資料庫查詢=>返回結果。如果許可權驗證做的不好,就會出現越權。

都包括哪些情況呢?

比如直接對象引用,這種情況直接修改參數就可以發生越權,例如,我想查看A用戶的資訊,直接將URL後的參數改為A用戶的就可以了。這裡有一個實例,現在登陸張三用戶,抓包如下圖

 

現在將5改為2,然後發送數據包,我們發現用戶變為1了

 

 

 還有比如一個功能,多步實現,只在第一步驗證用戶身份,其他不用,這樣攻擊者直接跳過第一步,執行下面的操作。

還有如果對身份驗證做的不完善,有可能在未登錄的情況下,知道敏感頁面URL可以直接訪問。

垂直越權:也叫許可權提升攻擊例如,用戶A通過構造URL直接進入了管理員B的頁面。

包括哪些情況呢?

比如設計者通過隱藏URL的方式,通過URL實現訪問控制,這是最不靠譜的,要是攻擊者猜出後台路徑,直接歇菜。

 

修復建議

對於水平越權:

  • 增加訪問與操作對象的用戶屬性,在對目標對象進行訪問與操作時,服務端校驗會話與對象的用戶屬性,在校驗通過後才能執行讀取和操作。                      
  • 頁面進行嚴格的訪問許可權的控制以及對訪問角色進行許可權檢查。

對於垂直越權:

  • 採取默認拒絕機制,採取基於角色訪問控制,對於各個功能的訪問,規定不同角色擁有不同的訪問許可權,用戶訪問功能時,驗證用戶現在的許可權和規定的許可權是否相同,如果奴同,拒絕訪問。

《黑客攻防技術寶典Web實戰篇》對訪問控制進行了整理,我拍了下來分享出來,如下圖

 

Tags: