91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

WebSphere 遠程代碼執行漏洞CVE-2020-4450的示例分析

發布時間:2021-12-20 11:46:40 來源:億速云 閱讀:763 作者:柒染 欄目:安全技術

WebSphere 遠程代碼執行漏洞CVE-2020-4450的示例分析,相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現的原因和解決方法,通過這篇文章希望你能解決這個問題。

一、漏洞分析

1.1 WebSphere 組件介紹

WebSphere 是 IBM 的軟件平臺。它包含了編寫、運行和監視全天候的工業強度的隨需應變 Web 應用程序和跨平臺、跨產品解決方案所需要的整個中間件基礎設施,如服務器、服務和工具。WebSphere Application Server 是該設施的基礎,其他所有產品都在它之上運行。WebSphere Process Server 基于 WebSphere Application Server 和 WebSphere Enterprise Service Bus,它為面向服務的體系結構 (SOA) 的模塊化應用程序提供了基礎,并支持應用業務規則,以驅動支持業務流程的應用程序。

1.2 漏洞描述

2020年6月15日,IBM官方發布了針對CVE-2020-4450漏洞的防御補丁。漏洞產生的原因是IBM WebSphere Application Server可以允許遠程攻擊者通過iiop協議傳輸精心構造的序列化數據,在系統上執行任意代碼。

1.3 詳細分析

首先梳理一下漏洞利用流程,漏洞觸發入口位于com.ibm.ws.Transaction.JTS.TxServerInterceptor#receive_request方法。

WebSphere 遠程代碼執行漏洞CVE-2020-4450的示例分析

控制 serviceContext和serviceContext.context_data參數值不為null,保證

boolean validOtsContext = serviceContext != null && serviceContext.context_data != null;

中的 validOtsContext 為true,從而進入下圖所示的if代碼塊

WebSphere 遠程代碼執行漏洞CVE-2020-4450的示例分析

在代碼塊中,執行TxInterceptorHelper.demarshalContext(serviceContext.context_data, (ORB)((LocalObject)sri)._orb())方法。

WebSphere 遠程代碼執行漏洞CVE-2020-4450的示例分析

首先調用createCDRInputStream創建EncoderInputStream(CDRInputStream的子類)。創建PropagationContext對象,將數據流中的屬性讀取到上下文中。這里重點關注

propContext.implementation_specific_data = inputStream.read_any();

此段代碼會調用EncoderInputStream#read_any方法,進而調用CDRReader#read_any方法進行反序列化操作。

WebSphere 遠程代碼執行漏洞CVE-2020-4450的示例分析

參考Zero Day Initiative和iswin文章,CVE-2020-4450漏洞使用WSIFPort_EJB類進行gadget構造,同時通過反射,獲取com.ibm.rmi.iiop.Connection#setConnectionContexts方法,添加構造的ServiceContext,滿足上述流程的前提條件,為serviceContext和serviceContext.context_data賦值。

通過構造context_data數據,在demarshalContext方法解析時觸發構造中的惡意數據,構造方式參考marshalContext方法

WebSphere 遠程代碼執行漏洞CVE-2020-4450的示例分析

模擬序列化流程,將構造的惡意數據傳入result。

進入gadget使用的WSIFPort_EJB類,首先跟進readObject方法

WebSphere 遠程代碼執行漏洞CVE-2020-4450的示例分析

在WSIFPort_EJB反序列化過程中會調用readObject方法,進而執行

this.fieldEjbObject = handle.getEJBObject();

這里可以構造一個惡意的fieldEjbObject 對象,為后續的jndi注入做準備。

繼續跟進代碼,在com.ibm.ejs.container.EntityHandle類中實現了Handler接口中的getEJBObject()方法。跟進com.ibm.ejs.container.EntityHandle#getEJBObject(),發現lookup() jndi尋址方法。

WebSphere 遠程代碼執行漏洞CVE-2020-4450的示例分析

以下是Jndi lookup方法調用的流程

com.sun.jndi.rmi.registry.RegistryContext#lookup
com.sun.jndi.rmi.registry.RegistryContext#decodeObject
javax.naming.spi.NamingManager#getObjectInstance
org.apache.aries.jndi.OSGiObjectFactoryBuilder#getObjectInstance
org.apache.aries.jndi.ObjectFactoryHelper#getObjectInstance
org.apache.aries.jndi.ObjectFactoryHelper#getObjectInstanceViaContextDotObjectFactories

主要跟進getObjectInstanceViaContextDotObjectFactories方法,在此方法中可以調用任何ObjectFactory類的getObjectInstance,這里根據Zero Day Initiative給出的WSIFServiceObjectFactory進行分析。

WebSphere 遠程代碼執行漏洞CVE-2020-4450的示例分析

通過獲取遠程惡意rmi服務中構造的xml文件并解析,讀取其中的字段數據,為上圖中屬性進行賦值。

在獲取homeClass之后,調用findFindByPrimaryKey()方法

WebSphere 遠程代碼執行漏洞CVE-2020-4450的示例分析WebSphere 遠程代碼執行漏洞CVE-2020-4450的示例分析

從此方法可以發現傳入的homeclass的限制條件,首先需要實現findFindByPrimaryKey方法。而在調用lookup方法時,限制homeclass類需要繼承EJBHome接口。

這里找到iswin提到的com.ibm.ws.batch.CounterHome接口。

WebSphere 遠程代碼執行漏洞CVE-2020-4450的示例分析

在執行this.object = (EJBObject)fbpk.invoke(home, this.key); 調用WSIFClientProxy#invoke方法,進行遠程方法調用。實現漏洞利用。

1.4 漏洞復現

搭建WebSphere Application Server 9.0.0.2環境,構造惡意的反序列化數據,通過iiop發送到目標服務器,當目標服務器解析反序列化數據,會觸發惡意代碼執行,效果如圖:

WebSphere 遠程代碼執行漏洞CVE-2020-4450的示例分析

二、影響范圍

目前受影響的WebSphere版本:

WebSphere Application Server 9.0.0.0 - 9.0.5.4

WebSphere Application Server 8.5.0.0 - 8.5.5.17

三、修復建議

官方已經針對此漏洞發布補丁,請受影響的用戶按照以下方式進行修復:

WebSphere Application Server 9.0:更新安全補丁PH25074,或者升級到9.0.5.5及更高版本。

WebSphere Application Server 8.5:更新安全補丁PH25074,或者升級到8.5.5.18及更高的版本。

四、時間軸

2020/6/15:IBM 官方分配漏洞編號CVE-2020-4450,發布補丁PH25074

2020/7/21:Zero Day Initiative 發布漏洞細節詳情

2020/8/17  深信服千里目安全實驗室分析并復現漏洞,發布產品解決方案。

五、參考鏈接

https://i.blackhat.com/eu-19/Wednesday/eu-19-An-Far-Sides-Of-Java-Remote-Protocols.pdf

https://www.thezdi.com/blog/2020/7/20/abusing-java-remote-protocols-in-ibm-websphere

https://www.iswin.org/2020/08/04/WebSphere-CVE-2020-4450-Vul-Analysis/

看完上述內容,你們掌握WebSphere 遠程代碼執行漏洞CVE-2020-4450的示例分析的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

平舆县| 鄢陵县| 壶关县| 望奎县| 沂南县| 涡阳县| 赞皇县| 彭阳县| 上思县| 井研县| 唐海县| 黄大仙区| 清涧县| 高青县| 城固县| 胶南市| 甘肃省| 布拖县| 伊宁市| 海兴县| 新平| 景东| 兴隆县| 本溪市| 临高县| 阿拉善右旗| 团风县| 汕尾市| 泰兴市| 鄂伦春自治旗| 荥阳市| 名山县| 成武县| 彰武县| 旅游| 扎囊县| 甘肃省| 海安县| 昭觉县| 灯塔市| 黄骅市|