国产成人精品18p,天天干成人网,无码专区狠狠躁天天躁,美女脱精光隐私扒开免费观看

jackson-databind遠程代碼執行漏洞分析(CVE-2020-106

發(fā)布時(shí)間:2022-05-27 12:30 來(lái)源:好主機 閱讀:116 作者:網(wǎng)絡(luò ) 欄目: 經(jīng)驗分享 歡迎投稿:712375056


1.  漏洞描述

近日,云安全團隊跟蹤到j(luò )ackson-databind在github上更新了一個(gè)新的反序列化利用類(lèi)com.caucho.config.types.ResourceRef,issue編號2660,該類(lèi)繞過(guò)了之前jackson-databind維護的黑名單類(lèi)。如果項目中包含resin-kernel庫,并且JDK版本較低的話(huà),請及時(shí)升級jackson-databind到安全版本。

2. 影響范圍

jackson-databind < 2.9.10.4

JDK < 6u201、7u191、8u182、11.0.1(LDAP)

3. 漏洞分析

該漏洞本質(zhì)是java的JNDI注入,我們先來(lái)了解下JNDI基礎知識。簡(jiǎn)單來(lái)說(shuō),JNDI是一組應用程序接口,它為開(kāi)發(fā)人員查找和訪(fǎng)問(wèn)各種資源提供了統一的通用接口,可以用來(lái)定位用戶(hù)、網(wǎng)絡(luò )、機器、對象和服務(wù)等各種資源。比如可以利用JNDI在局域網(wǎng)上定位一臺打印機,也可以用JNDI來(lái)定位數據庫服務(wù)或一個(gè)遠程Java對象。JNDI底層支持RMI遠程對象,RMI注冊的服務(wù)可以通過(guò)JNDI接口來(lái)訪(fǎng)問(wèn)和調用。JNDI接口在初始化時(shí),可以將RMI URL作為參數傳入,而JNDI注入就出現在客戶(hù)端的lookup()函數中,如果lookup()的參數可控就可能被攻擊。

因此分析的時(shí)候,可以直接先搜索受影響類(lèi)的lookup方法,看看漏洞入口在哪里,本文復現的時(shí)候用的是resin-kernel-4.0.52版本。

首先定位到com.caucho.config.types.ResourceRef類(lèi),我們在getValue方法中找到了jdni.lookup方法,但需要滿(mǎn)足getLookupName方法不為空。

跟進(jìn)到父類(lèi)ResourceGroupConfig,getLookupName方法直接返回_lookupName變量,但會(huì )在setLookupName方法進(jìn)行賦值。

因此可以確遠程對象調用入口為lookupName,我們可以寫(xiě)入如下的反序列化的測試代碼。由于觸發(fā)是在getValue方法中,因此在反序列化后需要再調用writeValueAsString方法進(jìn)行序列化,以觸發(fā)get方法??捎胢arshalsec監聽(tīng)ldap服務(wù),并制作好可執行命令的class文件。

其實(shí),在這里還需要說(shuō)下為什么需要調用mapper.enableDefaultTyping(),當不帶參數調用enableDefaultTyping時(shí),會(huì )設置DefaultTyping為OBJECT_AND_NON_CONCRETE。

DefaultTyping有四個(gè)選項:

JAVA_LANG_OBJECT: 當對象屬性類(lèi)型為Object時(shí)生效;

OBJECT_AND_NON_CONCRETE: 當對象屬性類(lèi)型為Object或者非具體類(lèi)型(抽象類(lèi)和接口)時(shí)生效;

NON_CONCRETE_AND _ARRAYS: 同上, 另外所有的數組元素的類(lèi)型都是非具體類(lèi)型或者對象類(lèi)型;

NON_FINAL: 對所有非final類(lèi)型或者非final類(lèi)型元素的數組。

因此,當開(kāi)啟DefaultTyping后,會(huì )開(kāi)發(fā)者在反序列化時(shí)指定要還原的類(lèi),過(guò)程中調用其構造方法setter方法或某些特殊的getter方法,當這些方法中存在一些危險操作時(shí)就造成了代碼執行。

官方在github的更新措施(https://github.com/FasterXML/jackson-databind/commit/1645efbd392989cf015f459a91c999e59c921b15),仍然是添加com.caucho.config.types.ResourceRef為黑名單類(lèi),但這種方式治標不治本,后續可能出現其他繞過(guò)黑名單的gdaget。

 

4. 防御措施

  1. 及時(shí)將jackson-databind升級到安全版本(>=2.9.10.4,> 2.10.0);
  2. 升級到較高版本的JDK。

 

參考:

https://qiita.com/shimizukawasaki/items/d72fb40b69bb0d328ee7

https://github.com/FasterXML/jackson-databind/issues/2660

 

文章轉自百度安全:https://anquan.baidu.com/article/1069

發(fā)布者:水橋丶帕露西

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng )、來(lái)自本網(wǎng)站內容采集于網(wǎng)絡(luò )互聯(lián)網(wǎng)轉載等其它媒體和分享為主,內容觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如侵犯了原作者的版權,請告知一經(jīng)查實(shí),將立刻刪除涉嫌侵權內容,聯(lián)系我們QQ:712375056,同時(shí)歡迎投稿傳遞力量。

国产福利在线观看片| 青青草国产成人99久久| 狠狠色丁香久久婷婷综合五月| 久久精品中文骚妇内射AV| 久久人搡人人玩人妻精品| 日韩AV无码一区二区三区|