GHOST系统之家 - Windows系统光盘下载网站!
当前位置:GHOST系统之家>电脑问题 > Zend Framework远程执行代码漏洞

Zend Framework远程执行代码漏洞

来源:Ghost系统之家浏览:时间:2022-09-04 20:05:06

Zend Framework (ZF)是Zend公司推出的一套PHP开发框架。是用 PHP 5 来开发 web程序和服务的开源框架。ZF 用100%面向对象编码实现。 ZF 的组件结构独一无二,每个组件几乎不依靠其他组件。这样的松耦合结构可以让开发者独立使用组件。 我们常称此为“use-at-will”设计。

Zend类是整个Zend Framework的基类,之所以有这个类是为了使Zend Framework遵循DRY原则(Don'tRepeatYourself)。这个类只包含静态方法,这些类方法具有Zend Framework中的很多组件都需要的功能。

ZendFramework出现漏洞已经不是第一次了,早在2012年,WooYun就曝出了ZendFramework(ZF)框架中的XMLRPC模块存在xxe(XMLexternalentity)注入漏洞,攻击者可借此读取服务器上的任意文件,包括密码文件及PHP源代码。当时200余家网站存在这一漏洞,知名开源建站平台Magento等使用ZF框架的建站系统也受该漏洞影响。

本周bleepingcomputer揭露了一个不受信任的反序列化漏洞,攻击者可以利用Zend Framework在PHP站点上实现远程代码执行。

目前这个漏洞被命名为CVE-2021-3007,此漏洞也可能影响Zend的替代项目Laminas,在一年前,Linux 基金会与ZendTechnologies、Rogue Wave Software 一起宣布 Zend 框架正在过渡到 Linux基金会,并在新的治理框架下改名为Laminas 项目。

Zend Framework由安装超过5.7亿次的PHP包组成,开发人员使用该框架构建面向对象的web应用程序。

从不受信任的反序列化到RCE

本周,安全研究员Ling Yizhou披露了Zend Framework3.0.0中的一个特定gadget链是如何被滥用于不受信任的反序列化攻击中的。

如果漏洞被利用,远程攻击者可以在某些情况下对易受攻击的PHP应用程序进行远程代码执行(remote code execution, RCE)攻击。

ZendFramework3.0.0有一个反序列化漏洞,如果内容是可控的,可能导致远程代码执行,这与Stream中的Zend\Http\Response\Stream类的__destruct方法有关。

虽然实际的不受信任的反序列化必须来自易受攻击的应用程序,而且Zend框架本身并不存在,但Zend提供的类链可能帮助攻击者实现RCE。

当应用程序从用户或系统接收的已编码数据在应用程序解码之前未经过适当验证时,应用程序中就会出现不受信任的反序列化漏洞。

一个易受攻击的应用程序可能会反序列化并处理接收到的格式不正确的数据,这可能会导致从应用程序崩溃(拒绝服务)到攻击者能够在应用程序上下文中运行任意命令等一系列后果。

在Zend的示例中,漏洞源于Stream类的析构函数,这是一个PHP魔术方法。

在面向对象编程中,构造函数和析构函数是在创建和销毁新类对象时分别调用的方法。

例如,在本例中,一个新创建的Stream对象将通过构造函数在其概念处运行一系列命令。

一旦对象在整个程序执行工作流程中达到其目的,PHP解释程序将最终调用该对象的析构函数,并遵循另一组命令来释放内存,执行清理任务并删除任何临时文件,这是一种好方法。

Yizhou指出,Stream的析构函数调用的用于删除文件的unlink()方法需要一个文件名作为参数,文件名是字符串数据类型。

ZendFramework远程执行代码漏洞

Zend Framework和Laminas项目中的漏洞破坏程序

实际上,如果streamName对象为非字符串类型,则在应用程序执行结束时,仍将其传递给析构函数。因此,只期望字符串值的析构函数将尝试调用对象的__toString方法,以获取与字符串等价的值。但是,可以由对象的创建者,或者对象实例化的类的创建者,轻松地自定义__toString方法。例如,Yizhou强调了ZendFramework的Gravatar类中的__toString方法是由其程序员编写的,其最终返回了攻击者可以直接控制的值,以执行任意代码。

这意味着,如果将Stream类传递到预期为streamName的Gravator对象,在某些情况下,攻击者可以在使用Zend构建的易受攻击的PHP应用程序中运行任意命令。

研究人员演示了至少2种情况,可以将序列化的对象传递给Zend,当通过PHP应用程序对其进行解析时,将在呈现的网页上呈现攻击者命令的输出。

在概念验证(PoC)漏洞中,研究人员演示了web应用程序的phpinfo页面是如何成功解析他的系统命令“whoami”通过一个序列化的HTTP请求,并返回Windows帐户名“ntauthority\system”。

ZendFramework远程执行代码漏洞

研究人员在演示对讲机上成功运行了“whoami”命令,获得了“nt authority system”输出

使用Laminas构建的应用也可能会受到影响

在2020年1月,Zend框架被迁移到Laminas项目,大量的代码被迁移到新的代码库中。

例如,带有上述析构函数的Zend的Stream.php类在某些版本的Laminas中仍然存在。

该代码可能与Laminas项目Laminas -http有关。维护人员不再支持Zend框架。然而,并不是所有的ZendFramework3.0.0漏洞都存在于Laminas项目版本中。

虽然这并不一定表明所有用Laminas项目构建的应用程序都是脆弱的,但建议开发人员做好必要的防护。

考虑到PHP能够在一定程度上控制大约80%的互联网站点,并且考虑到ZendFramework的普及程度,建议开发人员彻底检查他们的web应用程序,以确定是否存在不受信任的对象反序列化。

本周在Yii Framework中发现了一个类似的gadget链,攻击者可以使用它们来攻击易受攻击的应用程序。

对应用程序执行彻底的安全审计是一种不时发现零日和特定于环境的漏洞的方法。

本文翻译自:

https://www.bleepingcomputer.com/news/security/zend-framework-remote-code-execution-vulnerability-revealed/

鸿蒙官方战略合作共建——HarmonyOS技术社区

推荐系统

  • 番茄花园 Windows 10 极速企业版 版本1903 2022年7月(32位) ISO镜像快速下载

    番茄花园 Windows 10 极速企业版 版本1903 2022年7月(32位) ISO镜像快速下载

    语言:中文版系统大小:3.98GB系统类型:Win10

    番茄花园 Windows 10 32位极速企业版 v2022年7月 一、系统主要特点: 使用微软Win10正式发布的企业TLSB版制作; 安装过程全自动无人值守,无需输入序列号,全自动设置; 安装完成后使用Administrator账户直接登录系统,无需手动设置账号。 安装过程中自动激活

  • 新萝卜家园电脑城专用系统 Windows10 x86 企业版 版本1507 2022年7月(32位) ISO镜像高速下载

    新萝卜家园电脑城专用系统 Windows10 x86 企业版 版本1507 2022年7月(32位) ISO镜像高速下载

    语言:中文版系统大小:3.98GB系统类型:Win10

    新萝卜家园电脑城专用系统 Windows10 x86企业版 2022年7月 一、系统主要特点: 使用微软Win10正式发布的企业TLSB版制作; 安装过程全自动无人值守,无需输入序列号,全自动设置; 安装完成后使用Administrator账户直接登录系统,无需手动设置账号。 安装过程

  • 笔记本&台式机专用系统 Windows10 企业版 版本1903 2022年7月(32位) ISO镜像快速下载

    笔记本&台式机专用系统 Windows10 企业版 版本1903 2022年7月(32位) ISO镜像快速下载

    语言:中文版系统大小:3.98GB系统类型:Win10

    笔记本台式机专用系统 Windows 10 32位企业版 v2022年7月 一、系统主要特点: 使用微软Win10正式发布的企业TLSB版制作; 安装过程全自动无人值守,无需输入序列号,全自动设置; 安装完成后使用Administrator账户直接登录系统,无需手动设置账号。 安装过

  • 笔记本&台式机专用系统 Windows10 企业版 版本1903 2022年7月(64位) 提供下载

    笔记本&台式机专用系统 Windows10 企业版 版本1903 2022年7月(64位) 提供下载

    语言:中文版系统大小:3.98GB系统类型:Win10

    笔记本台式机专用系统 Windows10 64专业版 v2022年7月 一、系统主要特点: 使用微软Win10正式发布的专业版制作; 安装过程全自动无人值守,无需输入序列号,全自动设置; 安装完成后使用Administrator账户直接登录系统,无需手动设置账号。 安装过程中自动

  • 雨林木风 Windows10 x64 企业装机版 版本1903 2022年7月(64位) ISO镜像高速下载

    雨林木风 Windows10 x64 企业装机版 版本1903 2022年7月(64位) ISO镜像高速下载

    语言:中文版系统大小:3.98GB系统类型:Win10

    新雨林木风 Windows10 x64 企业装机版 2022年7月 一、系统主要特点: 使用微软Win10正式发布的企业TLSB版制作; 安装过程全自动无人值守,无需输入序列号,全自动设置; 安装完成后使用Administrator账户直接登录系统,无需手动设置账号。 安装过程中自动激活

  • 深度技术 Windows 10 x64 企业版 电脑城装机版 版本1903 2022年7月(64位) 高速下载

    深度技术 Windows 10 x64 企业版 电脑城装机版 版本1903 2022年7月(64位) 高速下载

    语言:中文版系统大小:3.98GB系统类型:Win10

    深度技术 Windows 10 x64 企业TLSB 电脑城装机版2022年7月 一、系统主要特点: 使用微软Win10正式发布的企业TLSB版制作; 安装过程全自动无人值守,无需输入序列号,全自动设置; 安装完成后使用Administrator账户直接登录系统,无需手动设置账号。 安装过程

  • 电脑公司 装机专用系统Windows10 x64 企业版2022年7月(64位) ISO镜像高速下载

    电脑公司 装机专用系统Windows10 x64 企业版2022年7月(64位) ISO镜像高速下载

    语言:中文版系统大小:3.98GB系统类型:Win10

    电脑公司 装机专用系统 Windows10 x64 企业TLSB版2022年7月一、系统主要特点: 使用微软Win10正式发布的企业TLSB版制作; 安装过程全自动无人值守,无需输入序列号,全自动设置; 安装完成后使用Administrator账户直接登录系统,无需手动设置账号。 安装过

  • 新雨林木风 Windows10 x86 企业装机版2022年7月(32位) ISO镜像高速下载

    新雨林木风 Windows10 x86 企业装机版2022年7月(32位) ISO镜像高速下载

    语言:中文版系统大小:3.15GB系统类型:Win10

    新雨林木风 Windows10 x86 专业版 2022年7月 一、系统主要特点: 使用微软Win10正式发布的专业版制作; 安装过程全自动无人值守,无需输入序列号,全自动设置; 安装完成后使用Administrator账户直接登录系统,无需手动设置账号。 安装过程中自动激活系统,无