前言
①越權訪問(Broken Access Control,簡稱BAC)是Web應用程序中一種常見的漏洞,由於其存在范圍廣、危害大,被OWASP列為Web應用十大安全隱患的第二名。
②該漏洞是指應用在檢查授權時存在紕漏,使得攻擊者在獲得低權限用戶賬戶后,利用一些方式繞過權限檢查,訪問或者操作其他用戶或者更高權限。
③越權漏洞的成因主要是因為開發人員在對數據進行增、刪、改、查詢時對客戶端請求的數據過分相信而遺漏了權限的判定。在實際的代碼審計中,這種漏洞往往很難通過工具進行自動化監測,因此在實際應用中危害很大。其與未授權訪問有一定差別,目前存在着兩種越權操作類型,橫向越權操作(水平越權)和縱向越權操作(垂直越權)。
水平越權訪問漏洞
水平越權訪問是一種“基於數據的訪問控制”設計缺陷引起的漏洞。
由於服務器端在接收到請求數據進行操作時沒有判斷數據的所屬人/所屬部門而導致的越權數據訪問漏洞。
假設用戶A和用戶B屬於同一角色,擁有相同的權限等級,他們能獲取自己的私有數據(數據A和數據B),但如果系統只驗證了能訪問數據的角色,而沒有對數據做細分或者校驗,導致用戶A能訪問到用戶B的數據(數據B),那么用戶A訪問數據B的這種行為就叫做水平越權訪問。
垂直越權訪問漏洞
垂直越權是一種“基於URL的訪問控制”設計缺陷引起的漏洞,又叫做權限提升攻擊。
由於后台應用沒有做權限控制,或僅僅在菜單、按鈕上做了權限控制,導致惡意用戶只要猜測其他管理頁面的URL或者敏感的參數信息,就可以訪問或控制其他角色擁有的數據或頁面,達到權限提升的目的。
防范措施
①前后端同時對用戶輸入信息進行校驗,雙重驗證機制
②調用功能前驗證用戶是否有權限調用相關功能
③執行關鍵操作前必須驗證用戶身份,驗證用戶是否具備操作數據的權限
④直接對象引用的加密資源ID,防止攻擊者枚舉ID,敏感數據特殊化處理
⑤永遠不要相信來自用戶的輸入,對於可控參數進行嚴格的檢查與過濾
參考博客:https://blog.csdn.net/u012068483/article/details/89553797