斯科特·菲塞尔
2022 年 2 月 22 日
远程工作
不,这不是一篇关于远程工作、在家工作或远程办公的博客。这篇博客不会讨论在家工作对工作/生活平衡的好处(尽管有很多好处),也不会讨论如何建设我们的互联网基础设施使企业和员工受益。不。这篇博客是关于远程工作的代码行导致 Web 应用程序和服务器出现问题。最新的例子是一周多前在带外紧急发布中修补的 Adobe Magento CVE-2022-24086 漏洞。顺便说一句,如果您没有看到它,上周公布了另一个具有相同 9.8 CVSS 严重性(CVE-2022-24087)的漏洞。
远程代码执行
那么远程代 台湾数据 码执行 (RCE) 到底是什么?它是指攻击者在远程系统或设备上执行代码的能力。当在网站上使用时,它可以允许访问者删除或读取文件,甚至连接到数据库。远程代码执行可能始于攻击者在网站上的用户注册/登录期间将信息输入字段。
如果您希望在注册期间将用户 ID 与用户的 IP 地址一起存储,它可能看起来像这样:
eval(“\$$userid = ‘$ipaddr’);
现在,由于您网站的访问者可以创建自己的用户 ID,因此攻击者可以利用此机会创建一个名称,以便利用上面的 eval 字符串。例如,用户 ID 可能如下所示:
现在,在我们存储的代码中我们有:
如果该用户 ID 被 Web 应用 使候选人的供应量似乎很 程序接受,攻击者将可以运行命令,同时注释掉“$ipaddr”值。这样攻击者就可以在页面上看到 phpinfo 的输出。此处使用 php 只是一个例子,RCE 也可以用于其他编程语言。
输入验证
大多数消费者都熟悉输入验证的概念,即使他们不知道它的具体作用。在账户注册和结账页面中,验证字段中的输入是否符合所需的模式或格式的过程非常常见。输入验证通常用于确保密码符合某些标准、日期格式正确、优惠券代码有效或支付卡的字符数正确。
同样,最近(截至 2022 年 2 月)成为头条新闻的 RCE 新闻与 Adobe 的Magento平台有关。具体来说是 Magento 2.4.3-p1(及更早版本)和 2.3.7-p2(及更早版本)。这允许在运行这些 Magento 版本的 Web 应用程序上进行 RCE;我们不知道其程度(截至撰写本文时)。Adobe 发布的补丁提到了 CWE 类别 20(CWE-20),在分析这些版本的补丁后,我们可以看到 Adobe 添加了模式匹配来帮助输入验证(下图 1)。
图片 1 – Magento 补丁
随着 RCE(log4j、Magento)的 中國資料庫 兴起,验证输入的责任不再仅仅落在网站开发人员身上;验证还必须由软件开发人员和网络安全人员完成。
不可避免的
Magento 平台上 RCE 的使用让我们相信 Magecart 团伙已经找到了另一种将 skimmer 植入网站的方法。即使软件开发人员和安全人员拥有随时可用的工具来对抗 RCE 和输入验证,仍然会发现漏洞和漏洞。这些漏洞可能会允许 Web 应用客户端攻击在您的网站上发生,即使在修复之后也是如此。