KeyFrame內部研究專用

DEF CON 33 - Regex For Hackers - Adam 'BuildHackSecure' Langley, Ben 'nahamsec' Sadeghipour

DEFCONConference·10月10日週五·50 min英文

三句話摘要

DEFCon 研討會:從正規表達式基礎到實戰漏洞發現,講師透過真實案例展示如何用 Regex 識別常見網路漏洞並進行滲透測試。 --- 掌握正規表達式不僅能識別代碼中的漏洞根源,更是在滲透測試中高效發現資產與敏感信息的關鍵工具——從簡單的域名驗證錯誤到複雜的 GitHub 代碼考古,Regex 搜尋能將資訊海洋轉化為有價值的攻擊面。 正規表達式的危險在於驗證不完全

重點整理

重點
  • 1

    正規表達式的危險在於驗證不完全

  • 2

    開發者常忘記使用結尾錨點 ($) 或正確轉義特殊字符。例如驗證域名時,若缺少 $,攻擊者可以用 `w.xtrusted.com` 繞過 `www.trusted.com` 的檢查,因為通配符 (.) 會匹配任何字符。

  • 3

    PostMessage、CORS、SSRF 都源於 Regex 不當使用

  • 4

    PostMessage 漏洞可透過構造子域名(如 `www.trusted.com.attacker.com`)繞過驗證;CORS 繞過則利用缺失末端美元符號在允許清單中插入惡意域名;SSRF 則透過通配符讓攻擊者訪問內部資源或 AWS 元數據。

  • 5

    GitHub 搜索是高效的資產列舉與代碼審查工具

  • 6

    利用 Regex 在 GitHub 上搜索特定關鍵字(如 api、dev、admin)可快速發現目標的內部 API、自動化腳本、配置文件,甚至洩露的密鑰與 JWT Token。講師曾透過 GitHub 發現某公司的所有 Spring Boot Actuator 端點,在數小時內獲得四個價值 3000 美元的漏洞賞金。

  • 7

    堆轉儲與代碼審查的 Regex 技巧

  • 8

    提取 Java 執行器堆轉儲中的敏感信息,可搜索 base64 編碼密碼(以 == 結尾)、JWT Token(以 eyJ 開頭)、AWS 密鑰;代碼審查則查找 echo + $_GET/$_POST(XSS)、system() 傳遞使用者輸入(RCE),跨越 PHP、JavaScript、Python 等語言。

  • 9

    --

實用技巧與重點

乾貨
  • Regex 基本元素:
  • 錨點:`^`(開始)、`$`(結尾)
  • 字符集:`[A-Z0-9_]`、`\d`(數字)、`\w`(字符)、`\s`(空格)
  • 量詞:`+`(1個或多個)、`*`(0個或多個)、`?`(0或1個)、`{16,19}`(範圍)
  • 分組:`(...)`、OR 運算符 `|`
  • 轉義:`\.`(句點)、`\/`(斜杠)
  • 真實漏洞 Regex 對比:
  • | 漏洞 | 錯誤 Regex | 修正 Regex |
  • |------|----------|----------|
  • | PostMessage | `www.trusted.com` | `^https://www\.trusted\.com$` |
  • | 開放重定向 | `trusted.com.*` | `^https://[a-z0-9]+\.trusted\.com/$` |
  • | CORS | `trusted.com` | `^(api\|admin\|www)\.trusted\.com$` |
  • | SSRF | `https://linkedin.com.*` | `^https://links\.linkedin\.com/[a-z0-9_]+$` |
  • GitHub 搜索 Regex 範例:
  • JWT Token:`eyJ[a-zA-Z0-9_-]+\.[a-zA-Z0-9_-]+\.[a-zA-Z0-9_-]+`
  • AWS Key:`AKIA[0-9A-Z]{16}`
  • Base64 密碼:`password["\s]:["\s][a-zA-Z0-9+/=]{20,}==`
  • XSS(PHP):`echo\s+(\$_GET|\$_POST|[a-zA-Z_][a-zA-Z0-9_]*\()`
  • RCE(系統命令):`system\s\(["\s](\$_GET|\$_POST)`
  • 實用工具與資源:
  • HackingHub(講師自創公司提供 CTF 與課程)
  • Hacker One、Try Hackme(漏洞賞金平台)
  • Subfinder、crt.sh(子域名列舉)
  • Actuator 堆轉儲解析工具
  • 具體數據:
  • 講師 Ben 累計獲得 180 萬美元漏洞賞金
  • Netflix 私人漏洞賞金計畫存在 6 年以上,潛力巨大
  • 荷蘭公司 API 發現單筆漏洞賞金 5000 美元
  • GitHub 上發現的單個執行器端點價值 3000 美元
  • --

結論

結論

掌握正規表達式不僅能識別代碼中的漏洞根源,更是在滲透測試中高效發現資產與敏感信息的關鍵工具——從簡單的域名驗證錯誤到複雜的 GitHub 代碼考古,Regex 搜尋能將資訊海洋轉化為有價值的攻擊面。

完整解析

詳細

本場研討會由漏洞賞金獵人 Ben Sadeghipour 與安全教育者 Adam Langley 聯合主講,內容跨越正規表達式的基礎理論與現實網路安全應用。整場演講包含 198 張投影片,速度極快但內容充實。

第一部分:正規表達式基礎與漏洞根源

講者首先回顧了 Regex 在各程式語言中的基本用法,如 Python 的 `startswith()` 與 JavaScript 的 `includes()`,但指出這些簡單方法存在侷限。Regex 作為搜尋模式語言,可視為狀態機,每條規則依序匹配,不符合則回溯重新嘗試。基礎操作包括字面匹配(如 Ctrl+F)、詞邊界 `\b`、錨點 `^` 與 `$`、字符集 `[A-Z]`、量詞 `+/*/?`、以及危險的通配符 `.`(匹配除換行外任意字符)。

許多漏洞根源於開發者對 Regex 的誤用或不完全驗證。例如,PostMessage 漏洞因缺少結尾錨點 `$`,允許攻擊者用 `www.trusted.com.attacker.com` 繞過驗證;開放重定向因未轉義句點,導致 `w.xtrusted.com` 被誤認為合法子域名。CORS 繞過則利用缺少末端美元符號,在允許清單後附加惡意域名。SSRF 漏洞常因 URL 驗證不足,攻擊者可訪問內部網路或雲服務元數據。講者透過具體案例展示,Ben 曾因發現某應用的開放重定向漏洞獲得 14000 美元賞金,該漏洞用於竊取用戶離線令牌並盜用帳戶。

第二部分:GitHub 資產列舉與代碼審查

Adam 隨後介紹了利用 Regex 在 GitHub 上進行高效偵察的技巧。相比傳統子域名列舉工具,GitHub 搜尋能揭示開發者實際使用的基礎設施。講者舉例發現通配符憑證時,可用 Regex 直接搜尋所有子域名;若結合關鍵詞如 `api` 或 `dev`,甚至能發現隱藏的內部 API 路由。一個亮點案例涉及某私人漏洞賞金計畫,講者透過 GitHub 發現泄露的自動化代碼,快速列舉出多個 Spring Boot Actuator 端點,每個端點都包含堆轉儲功能。短短數小時內,他找到四個價值 3000 美元的漏洞,共約 12000 美元。

對於堆轉儲分析,Regex 用於從非人類可讀的二進制數據中提取敏感信息:搜尋 `password` 欄位、Base64 編碼密碼(以 == 結尾)、JWT Token(以 `eyJ` 開頭)、AWS 密鑰等。代碼審查時,Regex 也能快速定位可能的漏洞:在 PHP 中搜尋 `echo` 搭配 `$_GET` 或 `$_POST` 來發現 XSS;搜尋 `system()` 傳遞使用者輸入來發現 RCE。講者更進一步介紹了自編工具 HabitBiota,能遍歷 GitHub 上所有開源套件,提取框架特定的 Regex 模式(如 Flask 路由、Laravel 中間件等),並從中生成詞表用於後續參數掃描。這類詞表涵蓋 GET/POST 請求參數、HTTP 標頭等,真實地反映企業系統在用的參數名稱。

實戰啟示與結論

講者強調,許多大型組織的內部框架代碼已公開在 GitHub,可透過 EC2 或企業工具直接啟動並進行漏洞審查。Regex 的威力不僅限於發現低掛水果,更在於跨越多個層面的應用:從簡單的 URL 驗證到複雜的堆轉儲解析,再到代碼審查與詞表構建。講者呼籲參與者發揮創意,思考如何將這些技巧串聯應用到現實世界,發現更多有價值的漏洞。

---

關鍵時刻

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 錯誤報告,進而收集目標系統配置情報。