KeyFrame內部研究專用

Hacking The Edge: Real-World ESI Injection Exploits by Robert Vulpe | Bug Bounty Village, DEF CON 33

Bug Bounty Village·5月14日週四·20 min英文

三句話摘要

利用邊緣端包含 (Edge Side Include, ESI) 技術漏洞進行跨域攻擊與帳戶接管的真實案例研究。 ESI 技術雖已過時但廣泛存在,其強大函數與現代安全工具的盲點結合,成為一個被忽視的高風險漏洞來源——重點不在複雜的 XSS,而在於 CDN 層面對動態內容的誤判與 SCI 變數的直接濫用。 ESI 規格已過時但仍被使用:ESI 最新開發指南來自 2004 年,現代開發者多數不了解其完整功能,導致配置錯誤。Akamai 等 CDN 廠商仍支持 SCI 標籤的多種函數(如讀取 HTTP cookie、新增請求頭、重導向),造成隱藏攻擊面。

重點整理

重點
  • 1

    ESI 規格已過時但仍被使用:ESI 最新開發指南來自 2004 年,現代開發者多數不了解其完整功能,導致配置錯誤。Akamai 等 CDN 廠商仍支持 SCI 標籤的多種函數(如讀取 HTTP cookie、新增請求頭、重導向),造成隱藏攻擊面。

  • 2

    內容類型誤認導致漏洞:靜態內容(.json、.jpg)不會處理 SCI 標籤,但 URL 編碼的點(%2E)可欺騙代理認為是動態內容,使 SCI 被處理。不同瀏覽器對 URL 編碼的處理差異(Firefox/Safari 在地址欄保留編碼,Chrome 轉換),成為利用的突破口。

  • 3

    多層編碼繞過 WAF:四次 URL 編碼組合 hack vectors(交替編碼與解碼)可完全繞過關鍵字過濾(script、iframe、onerror 等),無 WAF 工具會進行四層解碼檢查,因此變成實際不可能的防禦。

  • 4

    無需 XSS 的帳戶接管:利用 SCI 的 set_redirect 或 set_header 函數直接外洩 HTTP-Only cookie(SCI 可讀取任何進入請求的 cookie),不需要傳統 XSS 漏洞,但同站 cookie 政策限制了利用方式,需配合其他漏洞(如 iframe 載入 wildcard 子域)突破限制。

實用技巧與重點

乾貨
  • 技術與工具
  • ESI 規格:2001 年初版、2004 年 Akamai Suite 5.0 版本
  • SCI 核心函數:set_header、set_redirect、get_http_variable
  • HTTP 變數:HTTP_COOKIE(可讀任何 cookie,即使 httpOnly)
  • 繞過技術:URL 編碼四層 + hack vectors
  • 自動化工具:GAU(Web Archive 爬蟲)、Katana by Project Discovery(含 GC-Luis 提取 JavaScript 鏈接)、QS Replace(響應比對)
  • 具體漏洞數據
  • 在同一 Bug Bounty 計畫中發現 10-15 個類似 ESI 漏洞
  • Content-Type 為 JSON 時,無人進行 HTML 標籤驗證
  • Firefox 版本支援 iframe 內保留 URL 編碼字符(早期特性),最新 Firefox/Safari 在地址欄原生支援
  • 漏洞賞金等級
  • 帳戶接管 (Account Takeover):High 級別

結論

結論

ESI 技術雖已過時但廣泛存在,其強大函數與現代安全工具的盲點結合,成為一個被忽視的高風險漏洞來源——重點不在複雜的 XSS,而在於 CDN 層面對動態內容的誤判與 SCI 變數的直接濫用。

完整解析

詳細

邊緣端包含(ESI)是 2001 年設計的舊技術,用於 CDN 和代理在快取頁面中動態插入內容片段。儘管已有 20 多年歷史,許多現代企業仍然使用 Akamai 等服務並啟用 ESI,但開發者對其功能鮮少了解。講者發現這個技術領域存在巨大的攻擊面:SCI 標籤內建多種強大函數,能讀取 HTTP cookie、新增或移除請求頭、執行重導向,而大多數安全研究者從未深入探索過。

第一個漏洞涉及一個返回 JSON 內容的端點,其中 SCI 標籤被完整渲染而非過濾。起初看似無害——JSON 不會在瀏覽器中作為 HTML 執行——但講者利用 SCI 的 set_header 函數改變 Content-Type 為 text/html。為繞過 WAF 對敏感關鍵字的阻止,他採用四次 URL 編碼配合 hack vectors(反覆編碼解碼)的組合技巧。WAF 不可能進行四層解碼檢查(成本過高),因此這個技巧幾乎無法被偵測。更關鍵的是,講者利用 SCI 內建的 HTTP_COOKIE 變數讀取進入請求中的任何 cookie——即使這些 cookie 標記為 HttpOnly。最終他可以將 session cookie 外洩至自己的伺服器,實現完整的帳戶接管。

第二個漏洞更狡猾。JSON 檔案(.json)在 Akamai 被認定為靜態內容,不會處理 SCI 標籤。但講者發現,URL 編碼的點符號(%2E)會欺騙代理系統誤認為這是動態內容。在現代瀏覽器中直接輸入會自動轉換為普通點,無法利用;但 Firefox 的 iframe 實現了一項獨特行為,保留了 URL 編碼字符。經多次測試,講者確認最新版本的 Firefox 和 Safari 甚至在地址欄也支持此功能。利用 SCI 的 set_redirect 函數,他同樣可以外洩 cookie。然而同站 cookie 政策阻止了跨域 iframe 存取 cookie,講者需要找到另一個漏洞配合——他幸運地發現了一個允許 iframe 載入 wildcard 子域的漏洞,由此成功證明了帳戶接管的完整攻擊鏈。

為系統化發現這類漏洞,講者使用 GAU 搜集 Web Archive 歷史頁面,用 Katana(Project Discovery 工具)從 JavaScript 檔案中提取 API 端點,再透過 QS Replace 等工具手動比對響應。這個暴力但有效的方法最終發現了 10-15 個類似漏洞,大多數出現在 JSON、圖像等無人檢查的內容類型中。講者還提及,SCI Include 函數本身雖被 WAF 阻止,但其他 SCI 標籤的功能卻被忽視,甚至可以用 set_header 移除 CSP 防護頭。

關鍵時刻

Pipeline v2

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

事實查核

Pipeline v2

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

更多「AI 技術」的內容

Between Two Nerds: Attribution is dead, long live attribution
32 min
AI 技術英文PODCAST8月25日

Between Two Nerds: Attribution is dead, long live attribution

Risky Business

  • 工具成本的破壞性下降 — 傳統上,攻擊者必須重複使用昂貴自製的惡意軟體或工具組,因為開發和維護成本極高。這種成本結構使得安全研究人員可以通過工具特徵和程式碼簽名來追蹤攻擊者。LLM 自動化了代碼生成與維護工作流,使得攻擊者可以輕易為每個目標生成新工具,或改用通用系統工具,導致傳統的工具特徵分析失效。
  • 所有取證證據都在攻擊者掌控之中 — 無論是使用的 IP 位址、惡意軟體類型或戰術流程,這些都是攻擊者的主動選擇。即使看似是隨機巧合,攻擊者仍有能力在事前決定留下什麼痕跡。因此,所有可恢復的取證證據本質上都是攻擊者願意暴露的信息。
  • LLM 削弱工具簽名但保留高階行為特徵 — LLM 經過公開駭客技術訓練,使不同使用者產生相似的攻擊模式。然而,勒索軟體集團、國家級行為者的受害者選擇、贖金要求方式或目標模式等高階特徵仍具有識別價值。例如,鎖定加密交易所的攻擊幾乎只能指向朝鮮。
Everything Goldman Sachs Taught Me About AI (In 10 minutes)
AI 技術英文8月24日

Everything Goldman Sachs Taught Me About AI (In 10 minutes)

Nate Herk

  • 驗證優於相信:看起來完整的AI輸出不等於正確答案,需在提示中要求模型重新檢查數字、引用來源,並對無把握的部分標記。
  • 區分AI與自動化:確定步驟且答案已知的任務用傳統自動化更便宜快速;只在需要判斷力、靈活性或處理複雜資訊時才用AI,兩者結合效果最佳。
  • 以問題驅動選型:先寫清楚「要解決的問題是什麼、成功的樣子是什麼」,再決定用什麼工具,許多失敗項目是從技術而非問題出發。
Mu: a self-hosted personal agent where the interface is an email address you can write to
AI 技術英文8月23日

Mu: a self-hosted personal agent where the interface is an email address you can write to

GitHub Awesome

  • Mu 是自主代理人系統,具有實際網址與獨立伺服器,用戶可透過多種方式與其互動——網頁應用、電子郵件或程式化介面。
  • 架構完整覆蓋日常工作流程的多個層面,整合郵件收發(SMTP/IMAP)、檔案管理、行事曆、新聞聚合、市場數據與搜尋功能於一個 Go 伺服器內。
  • 支援自帶模型與多種通訊協定,用戶可選擇不同的 AI 模型,並透過 MCP、HTTP API 或命令列工具整合到其他系統。