CVE-2023-22527 是 Atlassian Confluence 知識庫的一個嚴重漏洞。 該漏洞有可能允許未經身份驗證的攻擊者將 OGNL 表達式註入 Confluence 服務器,導致任意程式碼和系統命令執行。
Atlassian Confluence 版本差異分析
Atlassian 指出,這個漏洞在 8.5.4 版本後得到修復。
比較 8.5.3 與 8.5.4 版本之間的差異,發現了許多變更,主要是 OGNL 相關的變更, OGNL 注入點,如 findValue 和 translateVariables。
未認證攻擊面的識別
我們發現 Confluence 使用 Velocity 模板文件渲染視圖,這些文件即使在未認證的情況下也可以直接訪問。
我們發現了一些直接將參數傳遞給 $ognl.findValue 或 $stack.findValue 的模板文件,例如 confluence/template/xhtml/pagelist.vm。
OGNL 表達式評估與遠程代碼執行
我們在 getText 函數上設置斷點,發現可以通過使用 unicode 轉義來組合控制的 OGNL 語法。
我們利用 #request['.KEY_velocity.struts2.context'] 來訪問 org.apache.struts2.views.jsp.ui.OgnlTool 類,並調用 Ognl.findValue(String, Object) 方法。
為了繞過安全限制,我們通過修改 payload 和利用 #parameters 地圖來執行系統命令。
利用 Nuclei 模板檢測漏洞
我們為這個漏洞創建了一個 Nuclei 模板,並將其加入到 nuclei-templates 項目中。
這個模板可以檢測受影響的 Atlassian Confluence 實例,並執行相應的遠程代碼執行測試。
這個分析展示了如何從版本差異分析到識別攻擊面,再到構建有效的利用方式。這個案例也顯示了開源工具 Nuclei 在發現和應對安全漏洞方面的重要作用。通过这种方式,组织可以加强安全防御,应对新出现的威胁,并为打造更安全的数字环境做出贡献。安全是一项集体努力,我们可以通过持续的发展和合作来应对网络威胁带来的挑战。
Комментарии