1. 程式人生 > 實用技巧 >業務授權訪問模組之越權漏洞

業務授權訪問模組之越權漏洞

越權漏洞

  • 越權漏洞就是指攻擊者能夠執行他原本沒有許可權執行的一些操作。
  • 也就是“超越了你所擁有的許可權,幹了你本來不可能幹的事兒”。
  • 越權漏洞一般分為兩種∶水平越權和垂直越權

在這裡插入圖片描述

水平越權

  • 如果攻擊者能夠執行與自己同級別的其他使用者能夠執行的操作,這就存在水平越權漏洞。
    在這裡插入圖片描述

垂直越權

  • 如果攻擊者能夠執行某項功能,而他所屬的角色並不具備該許可權,這就存在垂直越權漏洞。
    在這裡插入圖片描述

危害

  • 1、導致使用者敏感資訊洩露
  • 2、導致使用者資訊被惡意新增、修改或刪除

漏洞原理

產生原因

  • 主要是因為開發人員在對資料進行增、刪、改、查詢時對客戶端請求的資料過分相信而遺漏了許可權的判定。
  • 開發者認為通過登入即可驗證使用者的身份,而對使用者登入之後的操作不做進一步的許可權驗證,進而導致越權問題。

漏洞驗證

  • 通常情況下,我們使用一個web應用程式提供的功能時,流程如下。
  • 如果在“驗證許可權”環節存在缺陷,那麼便會導致越權。

在這裡插入圖片描述

測試

案例一:水平越權

  • 通過水平越權漏洞實現檢視其他使用者的收貨地址、聯絡方式等資訊

測試方法

  • 申請兩個帳戶,如A使用者和B使用者。
  • 分別抓取A和B兩個使用者中的請求資料包,通過修改資料包中可能代表使用者身份或產品序號等相關引數的值,
  • 判斷是否可通過修改A使用者的資料來實現訪問B使用者的資訊。

測試步驟

  • 第一步 抓取a使用者的個人資訊
    在這裡插入圖片描述

  • 第二步 檢視b使用者的個人資訊
    在這裡插入圖片描述

  • 第三步 修改id為a使用者的
    在這裡插入圖片描述
    在這裡插入圖片描述

  • 注意:可以對id欄位進行遍歷,進行檢視存在的使用者id
    在這裡插入圖片描述
    在這裡插入圖片描述


    在這裡插入圖片描述
    案例二:垂直越權

  • 通過垂直越權漏洞實現普通使用者變為管理使用者

測試方法

  • 一般在使用者註冊或修改密碼等處抓取請求資料包,修改其中可能代表使用者身份的引數,
  • 看是否能越權註冊成為管理使用者或修改管理使用者的密碼。

測試步驟

第一步 登入低許可權使用者tom,進行修改密碼
在這裡插入圖片描述
第二步 抓取tom修改密碼的資料包
在這裡插入圖片描述

  • 第三步 將使用者名稱欄位改為admin
    在這裡插入圖片描述
    在這裡插入圖片描述
  • 第四步 使用admin和密碼進行登入
    在這裡插入圖片描述

防禦方案

  • 1、在前端驗證使用者的輸入是否合規,在伺服器端驗證使用者許可權。
  • 2、執行關鍵操作前必須驗證使用者身份,有多階段、多步驟的業務流程每一步都需要驗證使用者身份。
  • 3、對敏感引數資訊進行加密處理,以防止攻擊者對引數資訊進行列舉。

摘抄


二十年後,讓你感到失望的不會是你做過的事,

而會是你沒做過的事,所以,請解開繩索,

駛離安全的港灣,揚帆起航吧。

去探索,去夢想,去發現!

—— 馬克·吐溫