偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

Zend Framework遠(yuǎn)程執(zhí)行代碼漏洞

安全 漏洞
本周bleepingcomputer揭露了一個不受信任的反序列化漏洞,攻擊者可以利用Zend Framework在PHP站點(diǎn)上實(shí)現(xiàn)遠(yuǎn)程代碼執(zhí)行。

Zend Framework (ZF)是Zend公司推出的一套PHP開發(fā)框架。是用 PHP 5 來開發(fā) web程序和服務(wù)的開源框架。ZF 用 100% 面向?qū)ο缶幋a實(shí)現(xiàn)。 ZF 的組件結(jié)構(gòu)獨(dú)一無二,每個組件幾乎不依靠其他組件。這樣的松耦合結(jié)構(gòu)可以讓開發(fā)者獨(dú)立使用組件。 我們常稱此為 “use-at-will”設(shè)計。

Zend類是整個Zend Framework的基類,之所以有這個類是為了使Zend Framework遵循DRY原則(Don't Repeat Yourself)。這個類只包含靜態(tài)方法,這些類方法具有Zend Framework中的很多組件都需要的功能。

Zend Framework出現(xiàn)漏洞已經(jīng)不是第一次了,早在2012年,WooYun就曝出了Zend Framework(ZF)框架中的XMLRPC模塊存在xxe(XML external entity)注入漏洞,攻擊者可借此讀取服務(wù)器上的任意文件,包括密碼文件及PHP源代碼。當(dāng)時200余家網(wǎng)站存在這一漏洞,知名開源建站平臺Magento等使用ZF框架的建站系統(tǒng)也受該漏洞影響。

本周bleepingcomputer揭露了一個不受信任的反序列化漏洞,攻擊者可以利用Zend Framework在PHP站點(diǎn)上實(shí)現(xiàn)遠(yuǎn)程代碼執(zhí)行。

目前這個漏洞被命名為CVE-2021-3007,此漏洞也可能影響Zend的替代項目Laminas,在一年前,Linux 基金會與 Zend Technologies、Rogue Wave Software 一起宣布 Zend 框架正在過渡到 Linux 基金會,并在新的治理框架下改名為 Laminas 項目。

Zend Framework由安裝超過5.7億次的PHP包組成,開發(fā)人員使用該框架構(gòu)建面向?qū)ο蟮膚eb應(yīng)用程序。

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

本周,安全研究員Ling Yizhou披露了Zend Framework 3.0.0中的一個特定gadget鏈?zhǔn)侨绾伪粸E用于不受信任的反序列化攻擊中的。

如果漏洞被利用,遠(yuǎn)程攻擊者可以在某些情況下對易受攻擊的PHP應(yīng)用程序進(jìn)行遠(yuǎn)程代碼執(zhí)行(remote code execution, RCE)攻擊。

Zend Framework 3.0.0有一個反序列化漏洞,如果內(nèi)容是可控的,可能導(dǎo)致遠(yuǎn)程代碼執(zhí)行,這與Stream中的Zend\Http\Response\Stream類的__destruct方法有關(guān)。

雖然實(shí)際的不受信任的反序列化必須來自易受攻擊的應(yīng)用程序,而且Zend框架本身并不存在,但Zend提供的類鏈可能幫助攻擊者實(shí)現(xiàn)RCE。

當(dāng)應(yīng)用程序從用戶或系統(tǒng)接收的已編碼數(shù)據(jù)在應(yīng)用程序解碼之前未經(jīng)過適當(dāng)驗證時,應(yīng)用程序中就會出現(xiàn)不受信任的反序列化漏洞。

一個易受攻擊的應(yīng)用程序可能會反序列化并處理接收到的格式不正確的數(shù)據(jù),這可能會導(dǎo)致從應(yīng)用程序崩潰(拒絕服務(wù))到攻擊者能夠在應(yīng)用程序上下文中運(yùn)行任意命令等一系列后果。

在Zend的示例中,漏洞源于Stream類的析構(gòu)函數(shù),這是一個PHP魔術(shù)方法。

在面向?qū)ο缶幊讨?,?gòu)造函數(shù)和析構(gòu)函數(shù)是在創(chuàng)建和銷毀新類對象時分別調(diào)用的方法。

例如,在本例中,一個新創(chuàng)建的Stream對象將通過構(gòu)造函數(shù)在其概念處運(yùn)行一系列命令。

一旦對象在整個程序執(zhí)行工作流程中達(dá)到其目的,PHP解釋程序?qū)⒆罱K調(diào)用該對象的析構(gòu)函數(shù),并遵循另一組命令來釋放內(nèi)存,執(zhí)行清理任務(wù)并刪除任何臨時文件,這是一種好方法。

Yizhou指出,Stream的析構(gòu)函數(shù)調(diào)用的用于刪除文件的unlink()方法需要一個文件名作為參數(shù),文件名是字符串?dāng)?shù)據(jù)類型。

Zend Framework遠(yuǎn)程執(zhí)行代碼漏洞

Zend Framework和Laminas項目中的漏洞破壞程序

實(shí)際上,如果streamName對象為非字符串類型,則在應(yīng)用程序執(zhí)行結(jié)束時,仍將其傳遞給析構(gòu)函數(shù)。因此,只期望字符串值的析構(gòu)函數(shù)將嘗試調(diào)用對象的__toString方法,以獲取與字符串等價的值。但是,可以由對象的創(chuàng)建者,或者對象實(shí)例化的類的創(chuàng)建者,輕松地自定義__toString方法。例如,Yizhou強(qiáng)調(diào)了Zend Framework的Gravatar類中的__toString方法是由其程序員編寫的,其最終返回了攻擊者可以直接控制的值,以執(zhí)行任意代碼。

這意味著,如果將Stream類傳遞到預(yù)期為streamName的Gravator對象,在某些情況下,攻擊者可以在使用Zend構(gòu)建的易受攻擊的PHP應(yīng)用程序中運(yùn)行任意命令。

研究人員演示了至少2種情況,可以將序列化的對象傳遞給Zend,當(dāng)通過PHP應(yīng)用程序?qū)ζ溥M(jìn)行解析時,將在呈現(xiàn)的網(wǎng)頁上呈現(xiàn)攻擊者命令的輸出。

在概念驗證(PoC)漏洞中,研究人員演示了web應(yīng)用程序的phpinfo頁面是如何成功解析他的系統(tǒng)命令“whoami”通過一個序列化的HTTP請求,并返回Windows帳戶名“nt authority\system”。

Zend Framework遠(yuǎn)程執(zhí)行代碼漏洞

研究人員在演示對講機(jī)上成功運(yùn)行了“whoami”命令,獲得了“nt authority system”輸出

使用Laminas構(gòu)建的應(yīng)用也可能會受到影響

在2020年1月,Zend框架被遷移到Laminas項目,大量的代碼被遷移到新的代碼庫中。

例如,帶有上述析構(gòu)函數(shù)的Zend的Stream.php類在某些版本的Laminas中仍然存在。

該代碼可能與Laminas項目Laminas -http有關(guān)。維護(hù)人員不再支持Zend框架。然而,并不是所有的Zend Framework 3.0.0漏洞都存在于Laminas項目版本中。

雖然這并不一定表明所有用Laminas項目構(gòu)建的應(yīng)用程序都是脆弱的,但建議開發(fā)人員做好必要的防護(hù)。

考慮到PHP能夠在一定程度上控制大約80%的互聯(lián)網(wǎng)站點(diǎn),并且考慮到Zend Framework的普及程度,建議開發(fā)人員徹底檢查他們的web應(yīng)用程序,以確定是否存在不受信任的對象反序列化。

本周在Yii Framework中發(fā)現(xiàn)了一個類似的gadget鏈,攻擊者可以使用它們來攻擊易受攻擊的應(yīng)用程序。

對應(yīng)用程序執(zhí)行徹底的安全審計是一種不時發(fā)現(xiàn)零日和特定于環(huán)境的漏洞的方法。

本文翻譯自:

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

 

責(zé)任編輯:趙寧寧 來源: 嘶吼網(wǎng)
相關(guān)推薦

2015-03-06 15:31:01

2011-08-04 13:53:04

2017-08-22 13:45:27

2019-05-15 15:20:01

微軟漏洞防護(hù)

2020-10-08 13:44:27

漏洞

2014-09-12 17:47:36

2014-08-27 16:22:19

2015-04-30 08:11:40

2023-12-14 16:20:09

2014-10-29 15:44:55

2010-01-25 11:37:30

2010-01-26 11:12:09

2015-04-16 09:49:04

2017-08-15 17:39:52

2015-06-18 10:49:31

2013-05-22 10:28:19

2022-08-10 12:01:50

DrayTek路由器漏洞

2017-06-15 17:28:36

2017-06-14 10:02:22

2010-09-13 17:57:12

執(zhí)行漏洞
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號