iT邦幫忙

0

Day 14:OWASP Top 10 漏洞(二):A01 Broken Access Control 存取控制失效與越權漏洞

  • 分享至 

  • xImage
  •  

💡 什麼是存取控制失效(Broken Access Control)?
在最新版的 OWASP Top 10 清單中,A01 Broken Access Control(存取控制失效) 直接躍居排行榜的第一名(#1)。這意味著它是目前 Web 應用中最常見、且危害往往極其嚴重的安全風險。

存取控制(Access Control) 的核心概念很簡單:「驗證使用者是否被允許執行他正在嘗試的操作」。換句話說——你是誰(Authentication),以及你能做什麼(Authorization)。
當應用程式在設計時,沒有確實檢查每個請求的權限,導致使用者可以越過權限邊界,存取不屬於自己的資源、竄改他人資料,甚至執行最高管理員的功能,這就構成了「越權漏洞」。

👥 越權漏洞的兩大經典類型
越權漏洞(Insecure Direct Object References, IDOR 屬於其中一種)通常可分為以下兩大類:

  1. 水平越權(Horizontal Privilege Escalation / IDOR)
    情境: 攻擊者與受害者擁有相同的權限等級(例如都是一般會員),但攻擊者透過修改網址或請求參數中的 ID,能夠存取或修改其他同級使用者的私人資料。

經典範例:
使用者登入後查看自己的訂單頁面,網址為 http://target.com/profile?user_id=1001。
此時若將 user_id 改成 1002,系統卻毫無驗證地直接回傳了 1002 號使用者的個資與信用卡記錄,這就是典型的水平越權。

  1. 垂直越權(Vertical Privilege Escalation)
    情境: 低權限的使用者(例如一般訪客或普通會員),透過漏洞或未受保護的路由,直接存取了只有高權限(如管理員 Admin)才能使用的功能或頁面。

經典範例:
管理員後台的網址為 http://target.com/admin/delete_user。
普通會員若直接在瀏覽器輸入這個網址,若伺服器只檢查了「有沒有登入」,卻沒有檢查「登入者的身份是否為 Admin」,就會導致普通會員成功執行刪除使用者的管理員權限動作。

🛠️ 如何手動測試越權漏洞?
在滲透測試中,尋找越權漏洞主要依賴「多帳號交叉驗證」與 Burp Suite:

準備兩個不同權限或同級的測試帳號(例如 Account A 與 Account B)。

利用 Burp Suite 攔截請求:
使用 Account A 登入並發送一筆修改資料或查看個資的請求,觀察請求中的參數(如 id=, username=, 或隱含在 JSON 內的 account_id)。

進行身份置換(BOLA 測試):
將該請求送至 Repeater,把參數中的身份識別改為 Account B 的數值,然後發送。

若伺服器成功回傳 Account B 的資料或執行成功(Status 200 OK): 恭喜!你成功挖到了越權漏洞(IDOR / Broken Access Control)!


*提醒邦友,使用第三方服務/API 時,請務必評估資安風險與隱私保護
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言