日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

【网络安全】Nacos Client Yaml反序列化漏洞分析

發(fā)布時(shí)間:2025/3/21 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【网络安全】Nacos Client Yaml反序列化漏洞分析 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

背景

Nacos 致力于幫助您發(fā)現(xiàn)、配置和管理微服務(wù)。Nacos 提供了一組簡(jiǎn)單易用的特性集,幫助您快速實(shí)現(xiàn)動(dòng)態(tài)服務(wù)發(fā)現(xiàn)、服務(wù)配置、服務(wù)元數(shù)據(jù)及流量管理。

Nacos 幫助您更敏捷和容易地構(gòu)建、交付和管理微服務(wù)平臺(tái)。 Nacos 是構(gòu)建以“服務(wù)”為中心的現(xiàn)代應(yīng)用架構(gòu) (例如微服務(wù)范式、云原生范式) 的服務(wù)基礎(chǔ)設(shè)施。

Nacos是阿里巴巴于2018年開(kāi)源的項(xiàng)目,目前在Github中已獲得 19.8kSt,由此可見(jiàn)其的使用廣泛程度。

未授權(quán)訪問(wèn)漏洞

threedr3am師傅在去年十二月份的時(shí)候在Github上給Nacos項(xiàng)目提交了Bypass 認(rèn)證的Issue,詳情可移步https://github.com/alibaba/nacos/issues/4593。在該Issue中提及了漏洞詳情,Nacos的認(rèn)證過(guò)濾器中會(huì)判斷客戶端的User-Agent如果是以Constants.NACOS_SERVER_HEADER(Nacos-Server)開(kāi)頭的話,則直接return返回。

對(duì)于上述的認(rèn)證繞過(guò)漏洞爭(zhēng)議很大,Nacos官方起初并不認(rèn)為這是一個(gè)安全漏洞的問(wèn)題,不過(guò)還是在1.4.1版本中發(fā)布了漏洞修復(fù)補(bǔ)丁。在1.4.1版本中需要在 application.properties添加nacos.core.auth.enable.userAgentAuthWhite的屬性值為false,即可避免使用User-Agent繞過(guò)鑒權(quán)的問(wèn)題,但這也引發(fā)了新的Bypass,具體的漏洞詳情可移步至https://github.com/alibaba/nacos/issues/4701,不再贅述。

客戶端Yaml反序列化

在Nacos的releases記錄中搜索 yaml 關(guān)鍵字不難發(fā)現(xiàn)其在1.4.2版本中有個(gè)PR更新了Yaml的安全解析:

而根據(jù)PR的描述內(nèi)容可知實(shí)際上該漏洞只影響單獨(dú)使用 nacos-client SDK的用戶,原因在于spring cloud、springboot、dubbo等框架中并非使用的 AbstractConfigChangeListener 監(jiān)聽(tīng)配置,所以該漏洞只影響了使用AbstractConfigChangeListener監(jiān)聽(tīng)配置的客戶端。

漏洞分析

首先在Nacos服務(wù)端中添加一個(gè)用于測(cè)試監(jiān)聽(tīng)的配置:

使用Maven引入nacos-client依賴:

<dependency><groupId>com.alibaba.nacos</groupId><artifactId>nacos-client</artifactId><version>1.4.1</version> </dependency>

以官方的監(jiān)聽(tīng)配置請(qǐng)求示例復(fù)現(xiàn),需要修改serverAddr、dataId、group、Listener,如果配置了登陸還需要添加username和password。

// Client.java import com.alibaba.nacos.api.NacosFactory; import com.alibaba.nacos.api.config.ConfigChangeEvent; import com.alibaba.nacos.api.config.ConfigService; import com.alibaba.nacos.client.config.listener.impl.AbstractConfigChangeListener;import java.util.Properties;public class Client {public static void main(String[] args) throws Exception {String serverAddr = "{serverAddr}";String dataId = "{dataId}";String group = "{group}";Properties properties = new Properties();properties.put("serverAddr", serverAddr);properties.put("username", "nacos");properties.put("password", "nacos");ConfigService configService = NacosFactory.createConfigService(properties);String content = configService.getConfig(dataId, group, 5000);System.out.println(content);configService.addListener(dataId, group, new AbstractConfigChangeListener() {@Overridepublic void receiveConfigChange(ConfigChangeEvent configChangeEvent) {System.out.println(configChangeEvent);}});while (true) {try {Thread.sleep(1000);} catch (InterruptedException e) {e.printStackTrace();}}} }

然后在com.alibaba.nacos.client.config.impl.YmlChangeParser#doParse方法中打下斷點(diǎn):

開(kāi)啟Debug并在服務(wù)端中修改上述用于測(cè)試的配置內(nèi)容為yaml反序列化的payload,該payload會(huì)加載遠(yuǎn)程的jar包并運(yùn)行主類的代碼。

點(diǎn)擊發(fā)布后即可命中斷點(diǎn)

再根據(jù)堆棧信息進(jìn)行回溯的調(diào)試,首先在ConfigFactory#createConfigService方法中通過(guò)反射獲取com.alibaba.nacos.client.config.NacosConfigService類的實(shí)例對(duì)象并返回該對(duì)象。

在NacosConfigService的構(gòu)造器中實(shí)例化ClientWorker對(duì)象

跟進(jìn)ClientWorker的checkConfigInfo方法

傳入的對(duì)象為ClientWorker的內(nèi)部類LongPollingRunnable對(duì)象,會(huì)調(diào)用其run方法。

而run方法就是nacos客戶端的長(zhǎng)輪詢監(jiān)聽(tīng),run方法中會(huì)循環(huán)調(diào)用cacheDatax.checkListenerMd5方法,而CacheData對(duì)象是從ClientWorker對(duì)象的cacheMap屬性中獲取的。

Iterator var3 = ClientWorker.this.cacheMap.values().iterator();


而cacheMap中緩存的CacheData對(duì)象是在客戶端添加監(jiān)聽(tīng)的時(shí)候?qū)懭氲?br />
再回到ClientWorker.LongPollingRunnable#run方法中,前面說(shuō)到其會(huì)調(diào)用checkListenerMd5方法,該方法中會(huì)調(diào)用safeNotifyListener方法,并傳入監(jiān)聽(tīng)配置的dataId、group、content(修改的新內(nèi)容)、type、md5及CacheData.ManagerListenerWrap對(duì)象。

在safeNotifyListener方法中調(diào)用了ConfigChangeHandler#parseChangeData方法解析數(shù)據(jù),傳入的參數(shù)listenerWrap.lastContent為修改前的內(nèi)容,content為修改后的內(nèi)容,type為數(shù)據(jù)類型(TEXT/JSON/XML/YAML/HTML/Properties)。

其會(huì)調(diào)用YmlChangeParser#doParse方法

YmlChangeParser#doParser方法中觸發(fā)Yaml反序列化漏洞,請(qǐng)求遠(yuǎn)程的Jar包并執(zhí)行。


再次聲明,該漏洞只影響使用AbstractConfigChangeListener監(jiān)聽(tīng)器的客戶端,原因如下:

漏洞修復(fù)

在1.4.2版本中已修復(fù)了該漏洞,修復(fù)方法為使用SnakeYaml提供的SafeConstructor解析Yaml配置。

實(shí)戰(zhàn)應(yīng)用

在實(shí)際的滲透測(cè)試中如果獲取了Nacos Server控制臺(tái)權(quán)限的話,不妨可以嘗試修改已有的配置為Yaml Payload進(jìn)行盲打客戶端的攻擊。但通常情況下的Springboot或SpringCloud都可以集成使用Nacos,所以這種場(chǎng)景下一般不會(huì)出現(xiàn)存在漏洞的情況。

最后

關(guān)注私我獲取2021最新【網(wǎng)絡(luò)安全學(xué)習(xí)資料·攻略

總結(jié)

以上是生活随笔為你收集整理的【网络安全】Nacos Client Yaml反序列化漏洞分析的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 日本国产在线视频 | 国产一区二区精品丝袜 | 日日日干| 黄色av免费在线观看 | 中文字幕一区二区三区精彩视频 | 一个人在线观看www软件 | 免费裸体视频女性 | 国产专区在线播放 | av手机在线免费观看 | 自拍偷拍精品视频 | 天天射天天射 | 欧美精品免费一区二区三区 | 精品无码国产污污污免费网站 | 97精品人人a片免费看 | 欧美成人精精品一区二区频 | 99ri国产精品| 久久成人精品视频 | 香港三级在线视频 | 欧美成人精品欧美一级乱 | 自拍偷拍第 | 中文字幕免 | 亚洲啪啪网址 | 黄色工厂这里只有精品 | 婷婷综合在线 | 91看黄| 日日干夜夜拍 | 久草香蕉视频 | 91美女在线视频 | 日本3p视频 | 亚洲网站色 | 操丰满女人 | 大尺度av在线| 亚洲无码国产精品 | 中文字幕日日夜夜 | 亚洲一区二区欧美 | 亚洲A∨无码国产精品 | 亚洲女人视频 | 99ri国产精品 | 婷婷深爱激情 | 疯狂伦交 | 风流僵尸艳片a级 | 黄色网址进入 | 亚洲综合图色 | 特一级黄色大片 | 午夜免费网址 | 樱花电影最新免费观看国语版 | 奇米影视四色777 | 久久98 | 日本性高潮视频 | 国产www免费 | 国产模特av私拍大尺度 | 波多野结衣影片 | 日韩天天操 | 欧洲成人在线 | 欧美在线观看一区二区 | 精品一区二区三区四 | 中国av在线播放 | 国产av成人一区二区三区高清 | 日本在线观看一区二区 | 亚洲av无码一区二区二三区 | av天天看| 久久99婷婷 | 免费av电影网站 | 欧美性极品 | ts人妖另类精品视频系列 | 丁香花完整视频在线观看 | 青草伊人久久 | 一本加勒比hezyo黑人 | 嫩草网站 | 超碰综合| 乱岳 | 欧美性xxxx| 久久久久久91香蕉国产 | 奇米影视77777 | 嫩草av91| 日韩经典中文字幕 | 国产成人精品123区免费视频 | 日韩欧美一级大片 | 久久国产精品久久久久久电车 | 国产不卡在线 | 午夜宅男网 | 日本黄色视屏 | 一区二区三区四区人妻 | 国产成人精品一区二区三区网站观看 | 亚洲女人天堂 | 亚洲在线视频网站 | 亚洲av日韩av永久无码下载 | 天天操天天干天天 | 制服.丝袜.亚洲.中文.综合懂 | 丁香啪啪综合成人亚洲 | 欧美成人综合 | 无码国内精品人妻少妇蜜桃视频 | 天天干天天干天天 | 在线观看高清av | 欧美美女性视频 | 国产精品探花一区二区三区 | 永久免费不卡在线观看黄网站 | 小柔的淫辱日记(1~7) | 国产精品中文无码 |