黑客业务

24小时接单的黑客,黑客业务,黑客怎么找,网络黑客,黑客技术

Zend Framework远程执行代码漏洞

Zend Framework (ZF)是Zend公司推出的一套PHP开发框架。是用 PHP 5 开发 web开源框架的程序和服务。ZF 用 100% 面向对象编码。ZF 的组件结构独特,几乎每个组件都不依赖其他组件。这种松耦合结构允许开发人员独立使用组件。我们通常称之为 “use-at-will”设计。

Zend类是整个Zend Framework基类之所以有这个类,是为了使基类Zend Framework遵循DRY原则(Don't Repeat Yourself)。这类只包括静态方法,这些方法有Zend Framework许多组件都需要功能。

Zend Framework早在2012年,就不是第一次出现漏洞,WooYun就曝出了Zend Framework(ZF)框架中的XMLRPC模块存在xxe(XML external entity)注入漏洞,攻击者可以读取服务器上的任何文件,包括密码文件和PHP源代码。当时有200多个网站有这个漏洞,知名的开源建站平台Magento等使用ZF框架的建站系统也受该漏洞影响。

本周bleepingcomputer它揭示了一个不可信的反序列序列化漏洞Zend Framework在PHP远程代码执行在网站上实现。

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

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

从不信任的反序列化到RCE

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

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

Zend Framework 3.0.0如果内容可控,则存在反序列化漏洞,可能导致远程代码执行Stream中的Zend\Http\Response\Stream类的__destruct方法有关。

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

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

易受攻击的应用程序可能会反序列化和处理格式不正确的数据,这可能会导致一系列后果,如应用程序崩溃(拒绝服务)到攻击者可以在应用程序的上下文中操作任何命令。

在Zend漏洞来自于示例Stream类分析函数,这是一个PHP魔术方法。

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

例如,在这种情况下,一个新的创造Stream对象将通过构造函数在其概念上运行一系列命令。

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

Yizhou指出,Stream用于删除文件的分析函数调用unlink()方法以文件名为参数,文件名为字符串数据类型。

Zend Framework远程执行代码漏洞

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

实际上,如果streamName如果对象是非字符串类型,则在应用程序执行结束时仍将其传递给分析函数。因此,只希望字符串值的分析函数能尝试调用对象__toString方法,以获得与字符串相等的值。然而,对象的创建者或对象的实例创建者可以很容易地定制自己__toString方法Yizhou强调了Zend Framework的Gravatar类中的__toString该方法由程序员编写,最终返回攻击者可以直接控制的值,以执行任何代码。

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

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

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

Zend Framework远程执行代码漏洞

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

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

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

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

代码可能与Laminas项目Laminas -http相关维修人员不再支持。Zend框架。然而,并非所有的Zend Framework 3.0.0漏洞都存在Laminas在项目版本中。

虽然这并不一定意味着所有的用途都不一定表明Laminas项目建设的应用是脆弱的,但建议开发人员做好必要的保护。

考虑到PHP可以在一定程度上控制约80%的互联网网站,并考虑到Zend Framework建议开发人员彻底检查其普及程度web为了确定是否存在不受信任的对象反序列化,应用程序。

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

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

本文翻译自:

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

   
  • 评论列表:
  •  晴枙囤梦
     发布于 2022-05-29 23:08:34  回复该评论
  • 有Zend Framework许多组件都需要功能。Zend Framework早在2012年,就不是第一次出现漏洞,WooYun就曝出了Zend Framework(ZF)框架中的XMLRPC模块存在xxe(XML external entity)
  •  闹旅城鱼
     发布于 2022-05-30 03:49:49  回复该评论
  • Zend Framework (ZF)是Zend公司推出的一套PHP开发框架。是用 PHP 5 开发 web开源框架的程序和服务。ZF 用 100% 面向对象编码。ZF 的组件结构独特,几

发表评论:

Powered By

Copyright Your WebSite.Some Rights Reserved.