越權漏洞 IDOR 全稱為 Insecure Direct Object Reference 不安全的直接對象參考
什么是IDOR漏洞?
應用程序中可以有許多變量,例如“ id”,“ pid”,“ uid”。盡管這些值通常被視為HTTP參數,但可以在標頭和cookie中找到它們。
攻擊者可以通過更改值來訪問,編輯或刪除任何其他用戶的對象。此漏洞稱為IDOR。
首先,它需要了解軟件開發人員開發的應用程序流程。當登錄用戶進入Web /移動應用程序時,需要了解所有模塊功能及其子模塊功能。
同樣重要的是要記住,此漏洞在安全測試中與XSS,CSRF一樣嚴重,並且是一種不容易發現的漏洞(自動測試或手動測試)。
下圖顯示了用戶和服務器之間的IDOR漏洞。
IDOR漏洞的影響
Bugcrowd VRT中的IDOR漏洞似乎是“依賴影響的變量 ”,因為它們的影響完全取決於您提交的錯誤。
但是我們根據我們的經驗創建了一個有關IDOR漏洞影響的列表,如下所示。
P1 –帳戶接管,訪問非常重要的數據(例如信用卡)
P2 –更改/刪除其他用戶的公共數據,訪問私人/公共重要數據(例如票證,發票,付款信息)
P3 –訪問/刪除/更改私人數據(有限的個人信息:姓名,地址等)
P4 –訪問任何不重要的數據
IDOR漏洞的影響取決於項目經理的判斷力。
用於輔助測試越權漏洞的工具:
Burpsuite的三款插件可用於輔助尋找越權漏洞。
- Autorize
- Authz(水平越權測試)
- AuthMatrix(垂直越權測試)
Authz插件可以查看其他用戶的請求響應。因此,我們可以將X用戶的請求發送到Authz並嘗試以Y用戶身份訪問它的響應。
另外,我們可以為測試IDOR漏洞添加自定義標頭,例如“ X-CSRF-Token”。
AuthMatrix插件允許通過注冊應用程序中角色的cookie值或標頭值來執行授權檢查。
如果有API請求,則可以將Wsdler插件用於Burp Suite,SoapUI,Postman等。還可以嘗試使用該工具嘗試所有GET,POST,PUT,DELETE,PATCH請求以及成功和快速的API測試。
如何防止IDOR漏洞?
首先,在創建應用程序時,應該控制所有普通,ajax和API請求。例如,只讀用戶可以在應用程序中寫入任何內容嗎?還是非管理員用戶可以訪問並創建僅由管理員用戶創建的API令牌?因此,要測試所有IDOR漏洞,您應該像黑客一樣思考。
您可以為所有端點在您的應用程序上提供權限。如果您的“ privatesection”端點包括諸如“ / api / privatesection / admins”,“ / api / privatesection / console”,“ / api / privatesection / tokens”之類的API請求,則可以為非管理員用戶阻止該端點。
同樣,為了使攻擊者的工作更加艱辛,甚至有時甚至阻止它,您可以使用哈希函數並使用哈希值代替常規數字或字符串。
部分內容翻譯自: