奇趣闻 > 科学探索 > \

CVE-2020-5776/5777:Magento插件多安全漏洞分析

原标题:CVE-2020-5776/5777:Magento插件多安全漏洞分析

Magento是Adobe公司旗下一个功能丰富的专业开源电子商务解决方案,为商家提供一个外观、内容和功能的完全灵活控制。Magento直观的管理界面包含强大的营销、商品推销和内容管理工具,使商家能够创建适合其独特业务需求的站点。Magento号称宇宙最强企业终极电子商务解决方案。

Magmi是用PHP语言编写的Magento插件,用作Magento数据库客户端,可以向目录中增加商品数量或进行更新。Tenable研究人员在Magento插件Magmi中发现了2个安全漏洞。

漏洞分析

CVE-2020-5776

CVE-2020-5776漏洞是MAGMI插件中的CSRF(跨站请求伪造)漏洞,漏洞产生的原因是MAGMI的GET和POST端点没有进行CSRF保护,比如使用随机的CSRF token。攻击者利用该漏洞可以执行CSRF攻击,比如诱使Magento管理员点击攻击者用来认证MAGMI的恶意链接。此外,攻击者还可以劫持管理员的会话,在服务器上执行任意代码。

CVE-2020-5777

CVE-2020-5777是一个认证绕过漏洞,漏洞产生的原因是存在使用默认凭证的fallback降级机制,漏洞影响MAGMI v0.7.23版本及更早版本。

MAGMI使用HTTP基本认证,并对Magento数据库的admin_user表的用户名和密码进行检查。如果连接到Magento数据库失败,MAGMI就会接受默认凭证magmi:magmi。因此,攻击者可以通过数据库DoS(DB- DoS)攻击来迫使数据库连接失败,然后用默认凭证来认证MAGMI。

攻击者利用该漏洞可以在受害者设备上进行远程代码执行。研究人员在测试过程中满足以下条件时成功执行了Magento DB- DoS攻击:同时发生的最大MySQL连接数大于同时发生的最大Apache HTTP连接数。通过发送超过MySQL连接数限制、同时小于apache HTTP连接限制的最大值,攻击者就可以临时拦截对Magento数据库的访问,并同时用默认凭证发起到MAGMI 的认证请求。

MySQL的连接限制通过变量max_connections来定义,默认是151。可以通过连接到MySQL实例和执行如下数据库查询来检查该值:

SHOW VARIABLES LIKE "max_connections"

Apache HTTP连接限制位于Apache Multi-Processing Module (MPM)配置的“MaxRequestWorkers” (MaxClients 或 pm.max_children)中。

研究人员测试过程中发现,从Apache v2.4.10版本开始,默认值为400或250。在之前的版本中,默认值为150,小于MySQL的默认max_connections。

PoC

研究人员在GitHub上公布的漏洞的PoC代码,参见:

https://github.com/tenable/poc/tree/master/MAGMI/cve-2020-5777

https://github.com/tenable/poc/tree/master/MAGMI/cve-2020-5776

厂商回应

Tenable研究人员在6月3日将漏洞详情报告给了MAGMI插件开发者。随后于6月17日和7月6日分别收到反馈称漏洞正在修复中,随后没有反馈。8月30日,开发者在发布的插件新版本中修复了CVE-2020-5777漏洞,但CVE-2020-5776漏洞至今仍没有修复。

显示全文

相关文章