KeyFrame內部研究專用

This Overlooked Bug Leads to Full Account Takeover (Client-Side Path Traversal)

Medusa·7月5日週日·16 min英文

三句話摘要

Client-Side Path Traversal (CSVD) 漏洞——通過修改 URL 參數中的路徑片段,誘導應用程式發送請求至非預期的 API 端點,進而改變受害者帳戶郵箱實現帳戶接管。 Client-Side Path Traversal 不通過伺服器端漏洞而通過客戶端瀏覽器正常化機制實現,是被掃描工具忽視卻威力巨大的漏洞,防禦的關鍵在於前端不應直接將使用者輸入拼接進 API 路徑,而應使用受限的列舉值或在伺服器端驗證路由。 漏洞根源:應用程式前端直接將使用者輸入的 `product` 參數值拼接進 API 路徑 `/api/products/{product}/similar`,未經驗證即發送請求。此行為使攻擊者可控制 API 呼叫的目標路徑。

重點整理

重點
  • 1

    漏洞根源:應用程式前端直接將使用者輸入的 `product` 參數值拼接進 API 路徑 `/api/products/{product}/similar`,未經驗證即發送請求。此行為使攻擊者可控制 API 呼叫的目標路徑。

  • 2

    瀏覽器正常化機制:瀏覽器會自動處理 URL 中的 `../` 片段,每個 `../` 使路徑向上一層目錄,這是 RFC 標準行為。攻擊者在惡意參數中植入 `../` 序列,利用此機制改變最終請求路徑。

  • 3

    攻擊流程:構造包含 `../` 的 payload 使路由指向 `/api/account/change-email`,瀏覽器正常化後路徑改變,郵箱修改請求自動使用受害者的 Cookie 執行,無需額外認證。

  • 4

    前綴路由防禦失效:服務器採用前綴匹配判斷路由,即使請求末尾有多餘的 `/similar`,只要路徑起始符合則照常處理,無法阻止此攻擊。

實用技巧與重點

乾貨
  • 漏洞類型:Client-Side Path Traversal (CSVD),與伺服器端路徑遍歷不同,完全在客戶端通過瀏覽器正常化發生
  • 相關 API 端點
  • `/api/products/{product}/similar`(查看相似產品)
  • `/api/account/change-email?new_email=xxx`(修改郵箱)
  • 關鍵參數:`product`、`new_email`、`old_email`
  • 攻擊 Payload 構造:`http://localhost/shop.html?product=../../api/account/change-email?new_email=attacker@example.com&`
  • 瀏覽器正常化規則:`../` 每個片段移除上層路徑,`../../` 移除兩層路徑
  • 認證機制:僅依賴 Cookie,無 CSRF Token、簽名驗證或其他認證機制
  • 伺服器路由邏輯:使用前綴匹配,`/similar` 後綴即使多餘也被忽略
  • 已知賞金等級:四位數(USD 1000+)

結論

結論

Client-Side Path Traversal 不通過伺服器端漏洞而通過客戶端瀏覽器正常化機制實現,是被掃描工具忽視卻威力巨大的漏洞,防禦的關鍵在於前端不應直接將使用者輸入拼接進 API 路徑,而應使用受限的列舉值或在伺服器端驗證路由。

完整解析

詳細

該漏洞的核心在於應用程式前端架構的一個看似無害的設計缺陷。當使用者在產品頁面點擊「檢視相似產品」時,應用程式會構造一個 API 請求 `/api/products/{product}/similar`,其中 `{product}` 直接來自 URL 參數。在查看 JavaScript 程式碼時可發現,該參數值被直接拼接入 API 路徑中,未經任何驗證或清理,應用程式隨後發送此請求。

攻擊者利用瀏覽器對 URL 的標準正常化行為實施攻擊。瀏覽器在處理 URL 時會自動移除 `../` 等路徑片段,這是 RFC 規範要求的安全機制。攻擊者將 `../` 序列注入 `product` 參數中,瀏覽器接著移除這些片段,導致最終請求路徑指向預期外的 API 端點。例如,原本應請求 `/api/products/../../api/account/change-email` 的惡意參數,經過瀏覽器正常化後變成 `/api/account/change-email`。

具體構造上,攻擊者設計一個包含郵箱修改 API 路徑和目標郵箱的 payload,誘使受害者點擊包含此 payload 的連結。當受害者點擊時,瀏覽器自動在請求中附加受害者自身的 Cookie,應用程式接收到正常化後的請求,以為這是合法的來自受害者的郵箱修改請求,遂執行修改操作。由於應用程式的路由採用前綴匹配——即只檢查路徑是否以特定字串開頭——即使請求末尾因應用程式邏輯而帶有 `/similar`,伺服器仍會處理該請求。

關鍵時刻

Pipeline v2

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

事實查核

Pipeline v2

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

更多「Web2 安全」的內容

Risky Bulletin: Russia starts blocking DoH and DoT
編輯精選
8 min
Web2 安全英文PODCAST8月26日

Risky Bulletin: Russia starts blocking DoH and DoT

Risky Business

  • 國家級網路管制層級提升:俄羅斯主動封鎖加密 DNS 協定對抗審查工具,中國加速淘汰 Windows 系統並遷移自主 Linux 發行版,各國正透過技術與法律手段強化網路主權與信息控制能力。
  • 詐騙犯罪走向精密化與自動化:從冒充警察的聲音詐騙(竊取 7.2 百萬美元)、AI 語音代理自動化破解 iPhone 啟用鎖、到跨越數百網站的投資詐騙(詐騙 7400 萬美元),犯罪組織正利用自動化工具與 AI 技術大幅降低成本並擴大規模。
  • AI 惡意軟體威脅實際上被嚴重誇大:405 個整合 AI 的惡意軟體樣本中僅 12 個於真實感染被偵測,其餘來自測試環境,證明當前 AI 惡意軟體仍停留於實驗階段,尚未構成主流威脅。
SANS Stormcast Wednesday, August 26th, 2026: Obfuscating SSRF; Paint and Photos AI Watermarks; FTP Banner C2;
5 min
Web2 安全英文PODCAST8月26日

SANS Stormcast Wednesday, August 26th, 2026: Obfuscating SSRF; Paint and Photos AI Watermarks; FTP Banner C2;

SANS Stormcast

  • SSRF 攻擊者已進化出高級繞過手段,不直接使用元數據服務 IP(169.254.169.254),而改用專門域名服務將請求轉址,支援點或破折號分隔 IP,甚至可自部署 DNS 伺服器進行 DNS 重綁定攻擊,使傳統簡易過濾機制失效。
  • 本地 AI 模型並非完全隱私:微軟 Paint 雖在本地執行生成邏輯,但安全檢查需上傳提示文字至遠程伺服器,返回時圖像內嵌不易移除的伺服器 GUID 隱形浮水印,可見浮水印(Copilot 圖標)則易被移除。
  • 傳統 FTP 協議被新型惡意軟體重新利用為命令控制通道,透過 FTP banner 傳遞指令於連接埠 21,防守者應視任何出站 FTP 流量為異常信號。
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 錯誤報告,進而收集目標系統配置情報。