在開放的電子商務平台上
其中一個問題允許未經身份驗證的用戶實現 JavaScript 代碼 (XSS) 的放置,該代碼可以在管理界面中查看取消購買的歷史記錄時執行。 該漏洞的本質是在結帳開始屏幕上處理取消表單中的註釋時,能夠使用 escapeHtmlWithLinks() 函數繞過文本清理操作(使用嵌套的“a href=http://onmouseover=...”標籤)在另一個標籤中)。 當使用內置模塊 Authorize.Net(用於接受信用卡付款)時,問題就會顯現出來。
為了在商店員工當前會話的上下文中使用 JavaScript 代碼獲得完全控制,我們利用了第二個漏洞,該漏洞允許加載偽裝成圖像的 phar 文件(
有趣的是,有關 XSS 問題的信息早在 2018 年 2.3.1 月就已發送給 Magento 開發人員,隨後在 XNUMX 月底發布了補丁,事實證明,該補丁僅消除了一種特殊情況,並且很容易被繞過。 一月份,還報告了以圖像為幌子下載 Phar 文件的可能性,並展示瞭如何結合使用這兩個漏洞來危害在線商店。 三月底在 Magento XNUMX 中,
2.2.8 和 2.1.17 修復了 Phar 文件的問題,但忘記了 XSS 修復,即使問題單已關閉。 2.3.2 月份,XSS 解析恢復,並在版本 2.2.9、2.1.18 和 XNUMX 中修復了該問題。
需要注意的是,這些版本還修復了 75 個漏洞,其中 16 個被標記為嚴重漏洞,還有 20 個問題可能導致 PHP 代碼執行或 SQL 替換。 大多數關鍵問題只能由經過身份驗證的用戶執行,但如上所示,利用 XSS 漏洞實現身份驗證操作並不困難,其中數十個漏洞已在標記版本中修復。
來源: opennet.ru