水平越權與垂直越權

2022-06-22 04:00:14 字數 1290 閱讀 9460

越權訪問(broken access control,簡稱bac)是web應用程式中一種常見的漏洞,由於其存在範圍廣、危害大,被owasp列為web應用十大安全隱患的第二名。

該漏洞是指應用在檢查授權時存在紕漏,使得攻擊者在獲得低許可權使用者賬戶後,利用一些方式繞過許可權檢查,訪問或者操作其他使用者或者更高許可權。越權漏洞的成因主要是因為開發人員在對資料進行增、刪、改、查詢時對客戶端請求的資料過分相信而遺漏了許可權的判定。在實際的**審計中,這種漏洞往往很難通過工具進行自動化監測,因此在實際應用中危害很大。其與未授權訪問有一定差別,目前存在著兩種越權操作型別,橫向越權操作(水平越權)和縱向越權操作(垂直越權)。

水平越權:指相同許可權下不同的使用者可以互相訪問

垂直越權:指使用許可權低的使用者可以訪問到許可權較高的使用者

水平越權測試方法:主要通過看看能否通過a使用者操作影響到b使用者

垂直越權測試思路:看看低許可權使用者是否能越權使用高許可權使用者的功能,比如普通使用者可以使用管理員的功能。

把握住傳參就能把握住邏輯漏洞的命脈

登入使用者a時,正常更改或者是檢視a的使用者資訊,然後抓取資料報,將傳參id修改為其他使用者,如果成功檢視或者修改了同許可權其他使用者資訊就屬於水平越權測試(如果可以影響到高許可權使用者就是垂直越權)

傳參id需要自己檢測(例如:uid= id= user=等)通常使用burp進行爆破傳參(傳參可能在get post cookie)

常見平行越權:

不需要輸入原密碼的修改密碼

抓包改使用者名稱或者使用者id修改他人密碼

修改資料的時候修改使用者id

檢視訂單的時候,遍歷訂單id

1.通過修改get傳參來進行越權:

2.通過修改post傳參來進行越權:

3.通過cookie傳參來進行越權

4.未授權訪問

未授權訪問,嚴格意義上這個不屬於越權漏洞,但是在日常測試中常常會遇見。即只要輸入正確的**就可以訪問,例如admin預設是登入,登入後跳轉到user.php,然後你直接訪問user.php,發現你直接有後台的許可權。

未授權訪問產生的原因是因為開發在後台**中沒有驗證使用者狀態(是否已經登入,例如可以通過isset($_session['username'])來判斷使用者是否是登入狀態)

前後端同時對使用者輸入資訊進行校驗,雙重驗證機制

呼叫功能前驗證使用者是否有許可權呼叫相關功能

執行關鍵操作前必須驗證使用者身份,驗證使用者是否具備運算元據的許可權

直接物件引用的加密資源id,防止攻擊者列舉id,敏感資料特殊化處理

永遠不要相信來自使用者的輸入,對於可控引數進行嚴格的檢查與過濾

web安全 平行越權和垂直越權

目錄 0x01 什麼是越權 0x02 越權測試過程 0x03 常見越權漏洞 國航某 可越權訪問其他訂單 涉及70w左右 暴風某站平行越權 使用者敏感資訊洩露 越權訪問漏洞指應用在檢查授權時存在紕漏,使得攻擊者在獲得低許可權使用者賬戶後,可以利用一些方式繞過許可權檢查,訪問或者操作到原本無權訪問的高許...

不安全的物件引用 垂直越權

該系統僅允許註冊社工賬號,此賬號許可權極低,無法檢視任何資訊,嘗試通過不安全的物件直接引用漏洞來獲取高許可權賬號。1.首先判斷出,社工與區管理員登入時使用者名稱識別的引數存在什麼不同 經抓包對比測試得知,社工賬戶和區管理員賬戶userinfobean.usertype的引數不同,社工賬戶 useri...

橫向越權與縱向越權

橫向越權 橫向越權指的是攻擊者嘗試訪問與他擁有相同許可權的使用者的資源 縱向越權 縱向越權指的是乙個低級別攻擊者嘗試訪問高階別使用者的資源 如何防止橫向越權漏洞 可通過建立使用者和可操作資源的繫結關係,使用者對任何資源進行操作時,通過該繫結關係確保該資源是屬於該使用者所有的。對請求中的關鍵引數進行間...