越權的學習

2021-10-18 00:02:37 字數 2922 閱讀 5130

定義

越權指開發人員在對資料的增刪改查時對客戶請求的資料過分信任,沒有新增許可權判定,導致單個使用者可以操作其他人的資訊。

理解

對房屋來說,使用房屋有哪些人呢?主人和訪客還有不速之客。通過使用鑰匙開了房屋門,我們在房屋裡可以做什麼呢?對於房屋的主人,我可以使用房屋內所有的東西,進出任何乙個房間;對於乙個訪客來說,只能在房屋的公共場地使用,而房屋裡某些的使用需要主人的授權才可以使用,比如進入主人的書房或者臥室。除此之外,也會有不速之客來這房屋翻箱倒櫃。這說明房屋的安全做得不夠,才會為不速之客提供了可能。在系統中,我們可以認為這不速之客訪問為越權。

了解

越權漏洞是web應用程式中一種常見的安全漏洞。由於其存在範圍廣、危害大,被owasp列為web應用十大安全隱患的第二名。它的威脅在於乙個賬戶即可空指全站使用者資料。當然這些資料僅限於存在漏洞功能對應的資料。

原因

越權漏洞的成因主要是因為開發人員在對資料進行增、刪、改、查的時候對客戶端請求的資料過分相信而遺漏了許可權的判斷。所以測試越權就是和開發人員拼細心的過程。

水平越權訪問漏洞

水平越權訪問是一種「基於資料的訪問控制」設計缺陷引起的漏洞。由於伺服器端在接收到請求資料進行操作時沒有判斷資料的所屬人/所屬部門而導致的越權資料訪問漏洞。

假設使用者a和使用者b屬於同一角色,擁有相同的許可權等級,他們能獲取自己的私有資料(資料a和資料b),但如果系統只驗證了能訪問資料的角色,而沒有對資料做細分或者校驗,導致使用者a能訪問到使用者b的資料(資料b),那麼使用者a訪問資料b的這種行為就叫做水平越權訪問。

水平越權的產生條件:

1.直接物件引用

這種通過修改一下引數就可以產生水平越權,例如檢視使用者資訊頁面url後加上自己的id便可檢視,當修改位他人的id號時,會返回他人的資訊,便產生了水平越權

2.多階段功能

多階段功能是乙個功能有多個階段的實現。例如修改密碼,可能第一步是驗證使用者身份資訊,號碼驗證碼類的。當驗證成功後,跳到第二步,輸入新密碼,很多程式會在這一步不在驗證使用者身份,匯入而已攻擊者抓包直接修改引數值,導致可修改任意使用者的密碼

垂直越權訪問漏洞

垂直越權是一種「基於url的訪問控制」設計缺陷引起的漏洞,又叫做許可權提公升攻擊。

由於後台應用沒有做許可權控制,或僅僅在選單、按鈕上做了許可權控制,導致惡意使用者只要猜測其他管理頁面的url或者敏感的引數資訊,就可以訪問或控制其他角色擁有的資料或頁面,達到許可權提公升的目的。

垂直越權產生條件:

1.通過隱藏url實現控制訪問

有些程式的管理頁面只有管理員才顯示,普通使用者看不到,利用url實現訪問控制,但url洩露或被而已攻擊者猜到後,會導致越權攻擊。

2.多階段功能

多階段功能是乙個功能有多個階段的實現,例如修改密碼,可能第一步是驗證使用者身份資訊,號碼驗證碼類的。當驗證成功後,跳到第二步,輸入新密碼,很多程式會在這一步不在驗證使用者身份,導致惡意攻擊者通過抓包直接修改引數值,導致可修改任意使用者密碼。

3.平台配置錯誤

一些程式會通過控制項來限制使用者的訪問,例如後台位址,普通使用者不屬於管理員組,則不能訪問。但當配置平台或者配置控制項錯誤時,就會出現越權訪問。

交叉越權

同時含有水平越權和垂直越權

1、首先,找出疑似存在越權漏洞的請求。存在越權漏洞的請求有一定的特點,可以從兩個方面下手。

2、從http請求上來說,就是通過burpsuite抓取在目標站點正常操作所產生的請求資料報,然後找出可能產生越權的請求。一般情況下,類似上文所述url的get或者post請求都要列為重點懷疑物件:

3、從業務功能上來說,找到容易產生越權的功能點。常見的越權高發功能點有:根據訂單號查訂單、根據使用者id檢視帳戶資訊、修改/找回密碼等。

4、確定了懷疑物件之後,還需要進一步的分析,以確定是否真的存在越權。這時,需要兩個不同的賬號(下文分別稱為賬號a和賬號b),以便測試登入賬號a後進行操作能否影響到賬號b。注意在瀏覽器中測試時,需要使用兩個瀏覽器分別登入不同的賬號,或者使用瀏覽器的隱私瀏覽功能登入其中乙個賬號。

5、以上文提到的url為例進行說明。假設賬號a的id為1234,賬號b的id為5678,burpsuite中抓取的資料報都是在賬號a的。我的習慣做法是:在burpsuite中將該請求傳送到repeater,然後將引數id的值修改為5678,最後提交修改後的請求包;伺服器返回響應後,可以看一下burpsuite中收到的響應報文。如果響應報文直接提示錯誤之類的,基本上可以確定此處不存在越權;如果響應報文提示操作成功,此時應該使用瀏覽器登入賬號b進行二次確認,如果資料確實有相應的改動,那麼則說明這裡存在越權漏洞。這裡需要注意:burpsuite中報文提示操作成功有可能是誤報,必須在瀏覽器中進行再次確認。而對於查詢訂單這類的請求來說,情況更簡單了,修改引數id提交請求,如果返回了賬號b的資料,那麼就可以確定存在越權。

6、當然,越權漏洞的攻擊點不僅僅存在於請求引數中,還有可能在cookie中。因此,需要具體情況具體分析,複雜一點的可能還需要cookie值配合請求引數值以實現越權攻擊。

1.前後端同時對使用者輸入資訊進行校驗,雙重驗證機制,在每個頁面載入前進行許可權認證。

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

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

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

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

學習記錄 越權漏洞

學習記錄 越權漏洞 注 個人學習總結,僅用於學術交流 一 越權分三類 水平越權 垂直越權 交叉越權 水平越權 指相同許可權下不同的使用者可以互相訪問,如a和b使用者相同許可權,但是a能登入或者修改b資訊 垂直越權 垂直越權是指使用許可權低的使用者可以訪問到許可權較高的使用者,如普通使用者能訪問或修改...

橫向越權與縱向越權

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

mysql越權 MYSQL儲存過程的越權執行

老早就有人提出來過了,不是什麼新技術,寫在這裡當備忘而已。沒做過多的測試,有些東西也是按我自己的理解說的,有錯誤請指出。若使用比如 use test delimiter create procedure readf f varchar 100 begin select load file f end...