KeyFrame內部研究專用

From Easy Wins to Epic Challenges: Bounty Hunter Edition | Bug Bounty Village, DEF CON 32

Bug Bounty Village·5月5日週一·51 min英文

三句話摘要

賞金獵人的冒險:從簡單漏洞到複雜攻擊鏈的實戰案例分享。 深度理解技術棧的實現細節是發現高價值漏洞的關鍵,環境隔離、加密設計、規範邊界處都可能隱藏從數千到數萬美元的安全風險。 環境隔離缺失導致認證完全繞過:Swisscom測試環境與生產環境共享密鑰存儲庫,測試環境固定PIN碼111可直接登入生產系統,雖然簡單卻影響數百萬用戶個人資訊。

重點整理

重點
  • 1

    環境隔離缺失導致認證完全繞過:Swisscom測試環境與生產環境共享密鑰存儲庫,測試環境固定PIN碼111可直接登入生產系統,雖然簡單卻影響數百萬用戶個人資訊。

  • 2

    加密cookie的設計漏洞可被簡單利用:三個加密cookie中的SMS令牌可複製到驗證碼顯示cookie中洩露,因為兩者使用相同加密密鑰與演算法,攻擊難以自動化但低成本高收益。

  • 3

    複雜漏洞鏈需多層技術結合:路徑遍歷繞過 → 刪除保護文件 → XML注入 → XInclude包含日誌 → XPath盲注逐字竊取會話令牌 → RCE,每一步都基於對應用實現的深度理解。

  • 4

    標準規範的邊界情況隱藏重大漏洞:郵件RCE鏈利用PHP double escaping、RFC 2047 MIME編碼、底線當空格等規範邊界,通過MTA配置注入實現任意檔案寫入與PHP代碼執行。

實用技巧與重點

乾貨
  • Swisscom駕駛艙系統:
  • SMS令牌硬編碼為111
  • cookie: 駕駛艙_擷取文字、駕駛艙_MSISDN、駕駛艙_SMS_令牌
  • 複製SMS令牌cookie到驗證碼顯示cookie洩露PIN
  • 登入取消後仍保持已登入狀態
  • 獎金:8000+3000+8000美元,共約50萬美元來自Swisscom
  • Swisscom被收購公司(PHP CMS):
  • 使用XML資料庫與檔案系統存儲
  • 路徑遍歷繞過:dotpipe.pipe slash
  • 刪除htxs保護檔案訪問XML資料庫
  • XML注入破壞XML結構
  • XInclude指令:`<!ENTITY % file SYSTEM "php://filter/convert.base64-encode/resource=/path/to/db">` 包含日誌數據庫
  • XPath盲注:字符逐一比較竊取會話令牌
  • 獎金:3000美元+2000美元編輯獎金
  • 瑞士郵政支付系統:
  • 交易超時時預設返回成功(應返回失敗)
  • 延遲支付完成可獲免費資金
  • 獎金:3000美元
  • 瑞士郵政CMS(Pepperhop):
  • 非標準SQL分隔符(非分號)
  • B64開始/結束標籤:`<B64>encoded_string</B64>` 被替換為解碼後的字符
  • 備份恢復功能SQL注入
  • 序列化PHP物件反序列化(通過訂單備註欄位,該欄位未被清理)
  • 自訂gadget鏈刪除./htaccess檔案繞過管理員認證
  • 獎金:6650美元
  • 大型PHP CMS - SSTI漏洞:
  • 初始SSTI: `{php_code}`標籤
  • 官方補丁:移除標籤並替換
  • 繞過方法1:結束標籤前換行(因正則無multiline模式)
  • 繞過方法2:不關閉起始標籤,依賴後續補丁添加結束標籤
  • 獎金:10000美元+小獎金
  • 大型PHP CMS - 郵件RCE鏈:
  • Laminas郵件庫驗證寄件者標頭
  • PHP double escaping:escapeshellarg + mail函數內部轉義
  • RFC 2047 MIME word編碼:`=?UTF-8?B?base64_encoded?=`
  • 底線作為空格(RFC允許):`=?UTF-8?Q?test_payload?=`
  • MTA參數注入:`-C /path/to/config -X /path/to/deadletter`
  • mail()第五參數控制sendmail二進制參數
  • 前置條件:短Web根目錄、可上傳檔案
  • 獎金:5000美元

結論

結論

深度理解技術棧的實現細節是發現高價值漏洞的關鍵,環境隔離、加密設計、規範邊界處都可能隱藏從數千到數萬美元的安全風險。

完整解析

詳細

Blake是一位從業七年的資深賞金獵人,擁有15年CTF經驗與18年總工作經驗,專精Web應用與PHP應用安全。他已在各平台累計賺取約200萬美元,對複雜攻擊鏈特別感興趣。本次演講分享了他在三家主要客戶身上的代表性發現。

Swisscom(瑞士最大電信商)提供了三個有趣的漏洞案例。最簡單的是測試環境完全暴露——SMS驗證碼固定為111,且測試環境與生產環境共享密鑰存儲庫。當測試環境登入功能故障時,Blake嘗試在生產環境預演(Pre)系統中使用測試PIN碼,結果成功登入。雖然極其簡單,卻能存取數百萬個IP位址後的用戶個人識別資訊。第二個漏洞體現了對細節的觀察——登入流程設置三個加密cookie,他發現通過複製SMS令牌cookie的內容到驗證碼顯示cookie中,由於使用相同加密方式,PIN碼會被解密並顯示在頁面上。第三個更詭異——只要收到SMS驗證碼後立即取消,系統仍會保持已登入狀態。

一個被Swisscom收購的公司使用了不知名的PHP CMS,暴露了複雜的漏洞鏈。該系統採用XML資料庫與檔案系統存儲(無SQL)。路徑遍歷防護試圖刪除`../`但有繞過方法(使用`../ pipe ../ pipe`),Blake利用此創建了特定目錄,進而刪除了唯一的`.htaccess`保護檔案,暴露XML資料庫。登入日誌資料庫包含所有用戶會話令牌。通過XML注入,他在用戶名中注入`<!ENTITY % include SYSTEM "path/to/login_logs">` 的XInclude指令,將登入日誌包含到被鎖定用戶資料庫中。由於該應用重新格式化XML文件,直接注入無法提取數據,但他發現通過XPath盲注可逐個字符竊取會話令牌——根據登入失敗次數與用戶鎖定状態的不同響應作為預言機,最終提取了管理員會話令牌並實現RCE。

瑞士郵政的支付系統包含有趣的邏輯漏洞。當交易超時(規定時間內未完成支付)時,系統預設返回成功而非失敗——這意味著只要在交易發起後等待足夠時間,就能免費獲得充值。該公司另一CMS使用非標準SQL分隔符與B64編碼功能。在備份恢復功能中,Blake利用未被清理的訂單備註欄位進行SQL注入。通過B64標籤注入特殊字符破壞SQL語法,並在恢復時注入更新語句,將序列化PHP物件寫入訂單資料。該物件包含的gadget鏈能夠刪除`.htaccess`檔案,從而繞過管理員認證機制。

最後一個大型PHP CMS的漏洞最為複雜。初始SSTI漏洞(`{php_code}`標籤)被官方修補後,Blake發現可通過在結束標籤前換行符來繞過正則表達式。但更有意思的是郵件RCE鏈,它涉及PHP double escaping、RFC 2047 MIME編碼與MTA參數注入的完美風暴。Laminas郵件庫先對寄件者地址進行escapeshellarg轉義,但mail()函數會再次應用轉義,導致參數注入。通過RFC 2047格式(`=?UTF-8?B?base64?=`或`=?UTF-8?Q?quoted?=`)編碼特殊字符,底線被定義為空格,Blake構造了一個payload來注入MTA配置參數。由於本地部分限制為64字符,他上傳了惡意MTA配置檔案,該檔案會將failed郵件的死信記錄寫入Web根目錄的`app.php`,最終實現PHP代碼執行。這個漏洞鏈因前置條件多(需短Web根、可上傳、郵件功能可用)而難以利用。

關鍵時刻

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 的組織必須立即修補。