Apache Ofbiz 是乙個電子商務平台,用於構建企業級、跨平台、跨資料庫、跨應用伺服器的多層分布式電子商務應用系統。
2023 年 12 月,正式發布新版本,修復 CVE-2023-49070 Apache Ofbiz XMLRPC ** 執行漏洞。 xml-rpc 元件在 4 月份正式從 main 分支中刪除,但直到 18 才被移除12.XML-RPC 介面在 10 月正式發布後才被廢除。 攻擊者可以利用此漏洞獲取伺服器許可權,建議您盡快修復該漏洞。
早在 2020 年,Apache Ofbiz 中就存在乙個反序列化漏洞 (CVE-2020-9496),該漏洞存在於 XML-RPC 元件中。 XML-RPC 也是 Apache ** 協會旗下的乙個專案,但基本上從 2010 年左右開始就沒有更新過,而且 XML-RPC 歷史上曾存在多個反序列化漏洞(如 CVE-2016-5003、CVE-2019-17570),目前一直沒有得到修復。
由於 Apache Ofbiz 使用了 XML-RPC 元件,這會影響到此問題。 在後續版本中,相關 API 經過強化以修復漏洞,但修復被繞過 (CVE-2023-49070)。
在 CVE-2020-9496 中,通過向 WebTools 控制項 XMLRPC 介面傳送包含 XML 格式的 XPC 請求正文的資料包來利用此漏洞。 此物件包含 base64 有效負載:
2020 年 5 月,漏洞出現後,Ofbiz 正式提交了本次提交的第乙個補丁,用於為 XML-RPC 介面新增身份驗證
此修補程式並不能完全解決問題,但它提高了漏洞利用的閾值,並且不再是“預授權 rce”漏洞。
2021 年 10 月,一位名叫朱杰的人向官方報告,這個“授權後 RCE 漏洞”可以在最新的 1712.08版本。 由於該漏洞不是由Ofbiz引起的,並且不再維護XML-RPC,因此無法從根本上修復該漏洞。
官方只能滿足於次優,用過濾器對請求做乙個測試,只要發現正文中存在這個關鍵字,就會報錯:
此修復程式很快被繞過,因為攻擊者可以新增空格來繞過檢測。
於是,官方強化,將檢測關鍵詞改為。
但是這種直接檢查存在於請求正文中,但對請求路徑進行了額外的限制:
當天,官方發現介面限制路徑不正確,於是在
而最新的CVE-2023-49070就是繞過了上述官方的強化方法:
繞過繞過對 XML-RPC 介面的身份驗證 通過這兩個繞過,最新的漏洞恢復到預身份驗證 RCE 漏洞。 首先,需要繞過它。
因此,我們也可以嘗試在 xml-rpc 請求的路徑中新增乙個分號:webtools control xmlrpc;/。
繞過第乙個限制,伺服器返回登入頁面。
如果 login() 方法的返回值不等於 error,則可以在不輸入 if 語句的情況下繞過返回值"error"將“檢查使用者登入”方法返回到“成功”。
在 login() 方法中,有幾行是這樣的:
由於 username、password 和 token 引數是從會話中獲取的,並且在您未登入時為空,因此如果 requirepasswordchange 引數的值等於 y,則 login() 方法可以返回 requirepasswordchange,否則將返回錯誤。
綜上所述,只需將請求路徑修改為 WebTools Control XMLRPC;/?username=&password=&requirepasswordchange=y,則可以繞過許可權檢測和 .
開始 ofbiz:18 與 docker12.09 的環境。
等待幾分鐘後,訪問會看到登入頁面,表示環境已成功啟動。
使用 CVE-2020-9496 中的重現方法傳送資料包顯示 XMLRPC 解析過程未成功進入
將路徑更改為 webtools control xmlrpc;/?username=&password=&requirepasswordchange=y 繞過限制:
進入容器,可以看到 Touch TMP Success 已經成功執行:
12月28日,安全測量平台新增了針對該漏洞的攻擊模擬,可以在安測平台搜尋關鍵詞“apache ofbiz”或“cve-2023-49070”獲取相關的攻擊模擬驗證操作,以驗證您的安全防禦是否有效抵禦漏洞,平台以行業獨特的方式確保您的驗證過程安全可靠。