USDT官网

菜宝钱包(caibao.it)是使用TRC-20协议的Usdt第三方支付平台,Usdt收款平台、Usdt自动充提平台、usdt跑分平台。免费提供入金通道、Usdt钱包支付接口、Usdt自动充值接口、Usdt无需实名寄售回收。菜宝Usdt钱包一键生成Usdt钱包、一键调用API接口、一键无实名出售Usdt。

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工具将通过组织函数在其观点处运行一系列下令。

,

usdt支付接口

菜宝钱包(caibao.it)是使用TRC-20协议的Usdt第三方支付平台,Usdt收款平台、Usdt自动充提平台、usdt跑分平台。免费提供入金通道、Usdt钱包支付接口、Usdt自动充值接口、Usdt无需实名寄售回收。菜宝Usdt钱包一键生成Usdt钱包、一键调用API接口、一键无实名出售Usdt。

,

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

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

Zend Framework和Laminas项目中的破绽损坏程序

现实上,若是streamName工具为非字符串类型,则在应用程序执行结束时,仍将其通报给析构函数。因此,只期望字符串值的析构函数将实验挪用工具的__toString方式,以获取与字符串等价的值。然则,可以由工具的创建者,或者工具实例化的类的创建者,轻松地自定义__toString方式。例如,Yizhou强调了Zend Framework的Gravatar类中的__toString方式是由其程序员编写的,其最终返回了攻击者可以直接控制的值,以执行随便代码。

这意味着,若是将Stream类通报到预期为streamName的Gravator工具,在某些情形下,攻击者可以在使用Zend构建的易受攻击的PHP应用程序中运行随便下令。

研究职员演示了至少2种情形,可以将序列化的工具通报给Zend,当通过PHP应用程序对其举行剖析时,将在出现的网页上出现攻击者下令的输出。

在观点验证(PoC)破绽中,研究职员演示了web应用程序的phpinfo页面是若何乐成剖析他的系统下令“whoami”通过一个序列化的HTTP请求,并返回Windows帐户名“nt authority\system”。

研究职员在演示对讲机上乐成运行了“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/: Allbet Gaming声明:该文看法仅代表作者自己,与本平台无关。转载请注明:usdt无需实名交易(www.caibao.it):Zend Framework远程执行代码破绽
发布评论

分享到:

usdt支付接口(www.caibao.it):DNSpooq:dnsmasq 中发现了7个安全漏洞
你是第一个吃螃蟹的人
发表评论

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。