業務授權訪問模組之越權漏洞
阿新 • • 發佈:2020-10-19
越權漏洞
- 越權漏洞就是指攻擊者能夠執行他原本沒有許可權執行的一些操作。
- 也就是“超越了你所擁有的許可權,幹了你本來不可能幹的事兒”。
- 越權漏洞一般分為兩種∶水平越權和垂直越權
水平越權
- 如果攻擊者能夠執行與自己同級別的其他使用者能夠執行的操作,這就存在水平越權漏洞。
垂直越權
- 如果攻擊者能夠執行某項功能,而他所屬的角色並不具備該許可權,這就存在垂直越權漏洞。
危害
- 1、導致使用者敏感資訊洩露
- 2、導致使用者資訊被惡意新增、修改或刪除
漏洞原理
產生原因
- 主要是因為開發人員在對資料進行增、刪、改、查詢時對客戶端請求的資料過分相信而遺漏了許可權的判定。
- 開發者認為通過登入即可驗證使用者的身份,而對使用者登入之後的操作不做進一步的許可權驗證,進而導致越權問題。
漏洞驗證
- 通常情況下,我們使用一個web應用程式提供的功能時,流程如下。
- 如果在“驗證許可權”環節存在缺陷,那麼便會導致越權。
測試
案例一:水平越權
- 通過水平越權漏洞實現檢視其他使用者的收貨地址、聯絡方式等資訊
測試方法
- 申請兩個帳戶,如A使用者和B使用者。
- 分別抓取A和B兩個使用者中的請求資料包,通過修改資料包中可能代表使用者身份或產品序號等相關引數的值,
- 判斷是否可通過修改A使用者的資料來實現訪問B使用者的資訊。
測試步驟
-
第一步 抓取a使用者的個人資訊
-
第二步 檢視b使用者的個人資訊
-
第三步 修改id為a使用者的
-
注意:可以對id欄位進行遍歷,進行檢視存在的使用者id
案例二:垂直越權 -
通過垂直越權漏洞實現普通使用者變為管理使用者
測試方法
- 一般在使用者註冊或修改密碼等處抓取請求資料包,修改其中可能代表使用者身份的引數,
- 看是否能越權註冊成為管理使用者或修改管理使用者的密碼。
測試步驟
第一步 登入低許可權使用者tom,進行修改密碼
第二步 抓取tom修改密碼的資料包
- 第三步 將使用者名稱欄位改為admin
- 第四步 使用admin和密碼進行登入
防禦方案
- 1、在前端驗證使用者的輸入是否合規,在伺服器端驗證使用者許可權。
- 2、執行關鍵操作前必須驗證使用者身份,有多階段、多步驟的業務流程每一步都需要驗證使用者身份。
- 3、對敏感引數資訊進行加密處理,以防止攻擊者對引數資訊進行列舉。
摘抄
二十年後,讓你感到失望的不會是你做過的事,
而會是你沒做過的事,所以,請解開繩索,
駛離安全的港灣,揚帆起航吧。
去探索,去夢想,去發現!
—— 馬克·吐溫