KeyFrame內部研究專用

Sometimes You Find Bugs, Sometimes Bugs Find You by Jasmin Landry | Bug Bounty Village, DEF CON 33

Bug Bounty Village·5月22日週五·20 min英文

三句話摘要

Bug bounty獵人分享的意外發現:從幸運遭遇到系統配置錯誤的六個實戰案例 Email是被長期忽視的payload注入點,應用驗證後常不重新檢查,搭配無差別嘗試策略與持續的技術學習,能發現系統實現中的意外漏洞。 演講分為三類漏洞發現模式,展示bug bounty中的實際情況。幸運類bug透過無差別payload嘗試(spray and pray)與工具輔助意外發現,例如Quick Look CSV利用了16年前的MacOS插件;WTF類bug涉及系統配置意外與複雜技術鏈,如Ansible SSTI通過email註冊欄位的template injection執行root命令;LOL類bug則因防禦機制實現不當,如WAF過濾導致密碼截斷為單字符。Email是關鍵攻擊面:應用在email驗證後多不重新驗證,且email常作為payload容器被系統自動處理。

重點整理

重點
  • 1

    演講分為三類漏洞發現模式,展示bug bounty中的實際情況。幸運類bug透過無差別payload嘗試(spray and pray)與工具輔助意外發現,例如Quick Look CSV利用了16年前的MacOS插件;WTF類bug涉及系統配置意外與複雜技術鏈,如Ansible SSTI通過email註冊欄位的template injection執行root命令;LOL類bug則因防禦機制實現不當,如WAF過濾導致密碼截斷為單字符。Email是關鍵攻擊面:應用在email驗證後多不重新驗證,且email常作為payload容器被系統自動處理。

實用技巧與重點

乾貨
  • 工具與技術名稱:
  • Access Hunter(Burp擴展):捕獲URL、Cookies、截圖
  • PHP My Admin
  • Ansible Playbooks(JINJA模板引擎)
  • Ansible lookup pipe plugin(執行系統命令的內置功能)
  • 具體漏洞數據:
  • Quick Look CSV — MacOS內置軟體,最後修改8年前,包含org IDs、account IDs、部分信用卡數據;評級P1且獲得獎金
  • XSS through email — Rails應用,payload通過父親投訴郵件被執行;評級P1
  • Email誤配置 — 被添加到內部分發列表,4-5封郵件/天,持續1個月,涉及dozen員工與PII信息
  • Ansible SSTI — 通過{{payload}}觸發JINJA渲染,提取環境變數與playbook_dir,以root身份執行命令;初評P1後降為P2
  • WAF過度過濾 — Fantasy sports應用,「I love <script>dogs」變成「I」,56個聯賽無密碼,可加入1000+聯賽
  • Command injection — 2019年Pearl應用,backtick命令直接執行
  • Email payload技巧:
  • 受限字符:括號、逗號(可用\x編碼繞過)
  • 變更email後應用多不重新驗證

結論

結論

Email是被長期忽視的payload注入點,應用驗證後常不重新檢查,搭配無差別嘗試策略與持續的技術學習,能發現系統實現中的意外漏洞。

完整解析

詳細

Jasmine是全職bug bounty獵人,擁有12年IT與網絡安全經驗,曾任NASDAQ信息安全高級總監。本次演講分享六個實戰案例,重點並非複雜的利用鏈,而是那些出乎意料卻真實存在的漏洞。

第一個漏洞出現在雲端合規檢測應用上。Jasmine在常規測試無果後,採用「spray and pray」策略——無差別地在各處注入payload。Access Hunter工具捕獲的URL包含「X-Apple-QLID」字樣,截圖顯示這實際是個CSV文件,裡面有組織ID、賬戶ID與部分信用卡資料。她進一步發現「QL」代表QuickLook——MacOS文件預覽功能,而Quick Look CSV是個16年前開發、8年前最後修改的MacOS插件。本地測試確認漏洞存在。公司評為P1並給予獎金,因為她成功訪問客戶帳戶數據,涉及PCI合規問題。有趣的是,儘管她在該文件中注入了許多payload,卻只有這一個被發現,這啟發她後來更精確地標識payload。

第二個案例同樣始於「spray and pray」。Rails應用中的XSS payload被注入了內部郵件系統——觸發點是某人提交的父親投訴郵件。該公司最終給予賞金。有趣的是,該公司員工後來在Twitter上聯繫她表示她「毀了他的一天」,但在得知她從事bug bounty工作後,反而介紹了他自己的安全相關工作,兩人最後成為朋友。

第三個漏洞發生在生活黑客大賽的應用上。該應用需要員工憑證,Jasmine嘗試了各種認證繞過方法都失敗。一週後收到郵件,發現自己被意外添加到內部分發列表,該列表用於發送新用戶訪問請求。她因此看到dozen名員工的信息與PII(包括地址),並可能有權批准/拒絕訪問。漏洞持續約一個月,期間每天收4-5封郵件。

第四個案例涉及WordPress自動化部署應用。Jasmine在email字段注入{{payload}},發現被渲染成「49」,說明後端在評估模板語法。經長時間研究與向公司詢問後,發現使用的是Ansible——基於JINJA模板引擎的配置管理工具。她查閱Ansible文檔,發現playbook_dir保留變量,嘗試注入email字段成功提取該目錄。進一步利用Ansible內置的pipe lookup plugin執行任意系統命令,最終發現應用以root身份運行。儘管初評P1,後來被降為P2。關鍵是email欄位在註冊時需要通過驗證,但改變email時應用未重新檢查,且不允許括號和逗號(可用\x編碼繞過)。

第五個案例來自fantasy sports應用。WAF對XSS過度防御,會完全去除特定字符,導致密碼被截斷。例如包含<script>的密碼會完全消失。邀請郵件以明文發送密碼,若密碼以被過濾字符開頭,郵件裡根本沒有密碼。Jasmine只需暴力破解前兩個字符就加入了1000多個聯賽,其中56個完全無密碼。

最後一個案例在2019年用Pearl構建的自助密碼重置應用中,ID欄位的backtick命令直接執行,輸出在響應中顯示。

關鍵時刻

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 或命令列工具整合到其他系統。