OWASP十大漏洞之一
A01:2021 – 訪問控制中斷
概述
從第五位上升到第五位,94%的應用程序接受了某種形式的中斷訪問控制的測試,平均發生率為3.81%,并且在貢獻的數據集中發生次數最多,超過318k。包括值得注意的常見弱點枚舉(CWE-200:敏感信息暴露給未經授權的行為者,CWE-201:通過發送的數據暴露敏感信息, 和CWE-352:跨站點請求偽造。
描述
訪問控制強制實施策略,以便用戶不能在其預期權限之外執行操作。故障通常會導致未經授權的信息泄露、修改或破壞所有數據,或在用戶限制之外執行業務功能。常見的訪問控制漏洞包括:
-
默認情況下違反最小特權或拒絕原則,其中應僅向特定功能、角色或用戶授予訪問權限,但任何人都可以使用。
-
通過修改 URL(參數篡改或強制瀏覽)、內部應用程序狀態或 HTML 頁面,或者使用攻擊工具修改 API 請求來繞過訪問控制檢查。
-
通過提供他人的唯一標識符(不安全的直接對象引用)來允許查看或編輯他人的帳戶
-
訪問缺少 POST、PUT 和 DELETE 訪問控制的 API。
-
特權提升。在不登錄的情況下充當用戶,或在以用戶身份登錄時充當管理員。
-
元數據操作,例如重播或篡改 JSON Web 令牌 (JWT) 訪問控制令牌,或者操縱 Cookie 或隱藏字段以提升權限或濫用 JWT 失效。
-
CORS 配置錯誤允許從未經授權/不受信任的源進行 API 訪問。
-
以未經身份驗證的用戶身份強制瀏覽經過身份驗證的頁面,或以標準用戶身份強制瀏覽特權頁面。
如何預防
訪問控制僅在受信任的服務器端代碼或無服務器 API 中有效,攻擊者無法修改訪問控制檢查或元數據。
-
除公共資源外,默認情況下應拒絕。
-
只需實施一次訪問控制機制,即可在整個應用程序中重復使用它們,包括最大限度地減少跨域資源共享 (CORS) 的使用。
-
模型訪問控制應強制實施記錄所有權,而不是接受用戶可以創建、讀取、更新或刪除任何記錄。
-
域模型應強制實施獨特的應用程序業務限制要求。
-
禁用 Web 服務器目錄列表,并確保文件元數據(例如 .git)和備份文件不存在于 Web 根目錄中。
-
記錄訪問控制失敗,在適當時提醒管理員(例如,重復失敗)。
-
速率限制 API 和控制器訪問,以最大限度地減少自動攻擊工具的危害。
-
注銷后,有狀態會話標識符應在服務器上失效。無狀態 JWT 令牌應該是短暫的,以便將攻擊者的機會之窗降至最低。對于壽命較長的 JWT,強烈建議遵循 OAuth 標準來撤銷訪問權限。
開發人員和 QA 人員應包括功能訪問控制單元和集成測試。
攻擊場景示例
場景 #1:應用程序在訪問帳戶信息的 SQL 調用中使用未經驗證的數據:
pstmt.setString(1, request.getParameter("acct"));ResultSet results = pstmt.executeQuery( );攻擊者只需修改瀏覽器的"acct"參數即可發送他們想要的任何帳號。如果未正確驗證,攻擊者可以訪問任何用戶的帳戶。
https://example.com/app/accountInfo?acct=notmyacct場景 #2:攻擊者只是強制瀏覽以 URL 為目標。訪問管理頁面需要管理員權限。
https://example.com/app/getappInfohttps://example.com/app/admin_getappInfo如果未經身份驗證的用戶可以訪問任一頁面,則這是一個缺陷。如果非管理員可以訪問管理頁面,則這是一個缺陷。
總結
以上是生活随笔為你收集整理的OWASP十大漏洞之一的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: onedrive已停止工作_4、工作簿的
- 下一篇: 关于图片以及格式UTI