KeyFrame內部研究專用

Cracking Broken Access Control (BAC) in Bug Bounty

ZACK0X01·12月30日週二·16 min英文

三句話摘要

透過實作實驗室示範如何在漏洞獎勵計畫中發現並利用「破壞存取控制」(Broken Access Control)漏洞。 Broken Access Control 的本質是「後端未做伺服器端權限驗證」,測試時只需系統性地替換 Token、竄改回應布林值、攔截功能性請求,就能覆蓋資料、功能、付費牆三大攻擊面。 Token 替換是最核心的測試手法:攔截 Admin 帳號的 API 請求後,將 Session Token 或 Cookie 替換為低權限用戶的憑證再重送,若伺服器未做伺服器端權限驗證,即可以低權限帳號取得 Admin 才能看到的 API 金鑰、組織金鑰、用戶機密資料。

重點整理

重點
  • 1

    Token 替換是最核心的測試手法:攔截 Admin 帳號的 API 請求後,將 Session Token 或 Cookie 替換為低權限用戶的憑證再重送,若伺服器未做伺服器端權限驗證,即可以低權限帳號取得 Admin 才能看到的 API 金鑰、組織金鑰、用戶機密資料。

  • 2

    存取控制漏洞不只限於「資料」,也包含「功能」:以邀請用戶功能為例,Admin 可以邀請,低權限用戶理應不能;若攔截 Admin 的邀請請求並替換 Token 重送成功,即構成功能層面的 Broken Access Control,危害程度往往更高。

  • 3

    API 回應中的布林值(Boolean)是重要攻擊面:`paid=false`、`confirmed=false` 等狀態欄位若被前端邏輯直接信任,攻擊者可透過 Burp Suite Repeater 將回應竄改為 `true`,繞過付費或驗證機制,直接存取受限內容。

  • 4

    升至付費方案後的擴大測試策略:繞過付費限制只是第一步;進入高級功能層後,應繼續測試該層所有端點,因為大多數攻擊者不會深入到這一層,所以此處漏洞競爭少、獎金潛力高。

實用技巧與重點

乾貨
  • 實驗室工具:SecretApp(GitHub,Python,`python app.py` 啟動)
  • 預設帳號:`user1`(低權限)、`admin`(管理員),各有獨立密碼
  • 多帳號工具:Firefox Multi-Account Containers 擴充功能(免費)
  • 攔截工具:Burp Suite(HTTP History + Repeater)
  • 攻擊手法 1:取得 Admin 的 `/api/keys` 請求 → 在 Repeater 替換為低權限 Token → 重送 → 取得 `api_key_admin_2024_secret`、組織 Alpha/Beta/Gamma 金鑰
  • 攻擊手法 2:攔截邀請用戶請求(`POST /invite`,含 `email=xyz@mail.com`)→ 替換 Token → 低權限用戶成功執行邀請功能
  • 攻擊手法 3:攔截 `/api/user/paid-status` 回應,找到 `paid=false` → Repeater 改為 `paid=true` → 成功存取付費課程內容
  • 攻擊手法 4:觀察 JavaScript 檔案中的方案名稱(free / business / premium)→ 竄改方案參數存取更高級功能
  • 課程平台:lori.shop(含 45 支影片、實驗室、24/7 聊天支援、1-on-1 私人教練)
  • 涵蓋主題:XSS、IDOR、Firewall Bypass、Account Takeover、CSRF、SSRF、SQL Injection

結論

結論

Broken Access Control 的本質是「後端未做伺服器端權限驗證」,測試時只需系統性地替換 Token、竄改回應布林值、攔截功能性請求,就能覆蓋資料、功能、付費牆三大攻擊面。

完整解析

詳細

這支影片的核心目標是透過一個作者親自設計的實驗室應用(SecretApp),讓學習者在接近真實漏洞獎勵情境的環境中練習「破壞存取控制」漏洞的發現與利用流程。實驗室可從 GitHub 下載,執行 `python app.py` 後會提供兩組帳號:低權限的 `user1` 與管理員 `admin`,讓測試者模擬真實攻擊情境——以低權限身份嘗試取得只有管理員才能存取的資源。

第一個示範場景聚焦於 API Token 替換攻擊。作者先以 Admin 帳號登入,透過 Burp Suite 的 HTTP History 找到負責取回機密資料(API 金鑰、組織金鑰、用戶機密)的 API 請求,接著將該請求送入 Repeater,把 Admin 的認證 Token 替換成低權限用戶的 Token 後重送。結果伺服器並未在後端驗證請求者是否真的有權限,直接回傳了 `api_key_admin_2024_secret` 等敏感欄位,成功示範了水平與垂直存取控制的雙重缺失。這也印證了漏洞的根本原因:後端只驗證「你是誰」,卻未驗證「你有沒有資格存取這個資源」。

第二個場景說明存取控制漏洞不僅限於「資料洩露」,功能層面的未授權呼叫同樣構成高危漏洞。以邀請用戶功能為例,攔截 Admin 發送的邀請請求後替換 Token 重送,低權限帳號即可成功觸發原本只屬於管理員的操作。第三個場景則展示了一種更隱蔽的繞過方式:API 回應中出現 `paid=false` 的布林值欄位,作者直接在 Repeater 中將回應改為 `paid=true` 並繞過付費牆,成功讀取付費課程的完整內容(包括「如何選擇目標」等章節),說明前端若直接信任 API 回應中的狀態欄位而不在伺服器端二次驗證,就會產生此類漏洞。

作者最後給出實戰建議:發現付費/方案限制繞過後,不要只是截圖回報,而是應該繼續深入測試進入高級功能後的所有端點。因為大多數攻擊者(99%)在繞過付費後就停下來,真正有價值的漏洞往往藏在更深層的功能之中,競爭者少、獎金潛力更高。此外,JavaScript 原始碼中常藏有方案名稱(free/business/premium)等線索,可協助構造更精確的竄改攻擊。

關鍵時刻

Pipeline v2

帶時間戳的重點,會在逐字稿層級分析上線後產生。目前請先透過原始影片觀看。

事實查核

Pipeline v2

說法查證是下一次管線升級的一部分。KeyFrame 只會顯示它真正能驗證的內容。

更多「Web2 安全」的內容

SANS Stormcast Tuesday, August 25th, 2026: DOUBLECUP PNG; WebAudio Fingerprinting; Expired Domains; Android; Car
7 min
Web2 安全英文PODCAST8月25日

SANS Stormcast Tuesday, August 25th, 2026: DOUBLECUP PNG; WebAudio Fingerprinting; Expired Domains; Android; Car

SANS Stormcast

  • PNG 容器攻擊的簡易性設計:Double Cup 不依賴複雜的 Exif 或隱寫技術,只用 PNG 副檔名和檔頭來偽裝,核心是利用 findstr 指令的常見可用性讓執行變得無需額外工具。
  • Web Audio API 的隱密指紋識別:音訊於增益零的無聲狀態下播放,使用者完全無感,但錄製波形足以建立裝置特徵,在瀏覽器原生功能層面難以區分是反詐欺還是過度追蹤。
  • 域名過期引發的串聯漏洞:DMARC 報告端點使用過期域名是常見疏漏,允許攻擊者透過簡單的域名註冊取得他人的 SPF/DKIM 錯誤報告,進而收集目標系統配置情報。
Risky Bulletin: Expired credit cards can be used for malicious transactions
5 min
Web2 安全英文PODCAST8月24日

Risky Bulletin: Expired credit cards can be used for malicious transactions

Risky Business

  • 支付安全的非對稱風險:Visa卡利用未加密的卡片資料與NFC通訊,攻擊者可藉由中間人技術竄改過期日期進行交易,但MasterCard、美運卡與Discover的防護更完善,顯示不同發卡機構的安全架構存在明顯差異。
  • 國家級駭客活動的連鎖延伸:北韓Lazarus集團在2月單一事件已累積100名受害者,涵蓋大學、警察部門、媒體與醫療機構,伊朗駭客則針對基礎建設如電力系統發動破壞性攻擊,反映地緣政治在網路戰爭中的升溫。
  • AI加速漏洞生態的雙面刃:AI工具催生近2萬份漏洞概念驗證代碼發布,但同時也導致大量失效漏洞代碼氾濫,增加資安團隊甄別真實威脅的難度;Mayer Protocol遭攻擊事件中,駭客用AI鏈接六個無關的小漏洞完成盜竊170萬美元的攻擊。
SANS Stormcast Monday, August 24th, 2026: More Entra Powershell; Entra Vulnerability; GitLab Vuln (and PoC); GTA 6 Leak Malware
5 min
Web2 安全英文PODCAST8月24日

SANS Stormcast Monday, August 24th, 2026: More Entra Powershell; Entra Vulnerability; GitLab Vuln (and PoC); GTA 6 Leak Malware

SANS Stormcast

  • Microsoft EntraID 的遠端代碼執行漏洞已由微軟修補,初期報告顯示已遭利用但後來更正為未遭利用。這反映 Microsoft 在雲端軟體安全上的透明度提升,對漏洞採用與內部軟體相同的 CVE 編號和公告流程。
  • PowerShell 指令碼可用於驗證 MFA 部署完整性,特別是找出未啟用 MFA 的遺漏帳號。同時可以分析 EntraID 登入日誌中的異常行為,如風險係數評估和地理位置檢測,幫助組織快速識別可疑登入。
  • GitLab 的 GraphQL 代碼注入漏洞允許未認證攻擊者刪除或修改儲存庫,潛在導致供應鏈攻擊。已有公開概念驗證 (PoC) 存在,使用內部部署 GitLab 的組織必須立即修補。