解决“nacos默认secret.key配置不当权限绕过漏洞“

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: 解决“nacos默认secret.key配置不当权限绕过漏洞“

一、前言

nacos 2.2.0.1以下版本会有一个nacos默认secret.key配置不当权限绕过漏洞,等级为高危。形成原因是nacos的配置文件中存在这么一个secret.key默认配置:

nacos.core.auth.plugin.nacos.token.secret.key=SecretKey012345678901234567890123456789012345678901234567890123456789

会被他人利用进行提权从而达到系统受控的目的。

二、解决

解决这个问题需要对这个key的默认值进行修改,建议不要使用明文,可以用base64,key的长度要32位以上,下面介绍一下在两种环境下的修改方法:

2.1 centos系统

找到nacos的安装目录,假设是在/usr/local/nacos

# 打开配置文件所在目录
cd /usr/local/nacos/conf
# 对文件进行编辑
vim application.properties

定位到secret.key所在行,输入斜杠/,然后再输入secret.key,最后回车,如:

/secret.key

然后使用键盘的方向键定位到要修改的值,输入i 进入编辑模式,之后就可以进行修改了。

修改好之后保存,先按Esc键退出编辑模式,最后输入以下命令进行保存:

:wq

保存完之后重启一下nacos即可。

首先打开bin目录,bin目录是conf的同级目录

cd ../bin

先关闭

sh shutdown.sh

再启动,这里使用的是单机模式

sh startup.sh -m standalone
2.2 docker容器
1、在宿主机上修改

docker环境下如果映射了宿主机目录的话,直接在宿主机上修改配置文件重启容器即可。

2、在docker容器里面修改

如果没有映射宿主机的目录,则可以进入docker容器内进行修改。

docker exec -it nacos bash

默认目录是/home/nacos/conf,然后安装centos系统的修改方法进行修改。

3、直接修改启动命令

如果使用默认配置呢,可以在启动命令中增加NACOS_AUTH_TOKEN参数来达到修改目的,这种方式更为简单。

docker环境的nacos默认配置如下

nacos.core.auth.plugin.nacos.token.secret.key=${NACOS_AUTH_TOKEN:SecretKey012345678901234567890123456789012345678901234567890123456789}

rm旧的容器

# 强制停止并删除容器
docker rm -f containerId(容器id)
# containerId(容器id) 可以使用下面的命令查看,第一列就是容器id
docker ps
# 或
docker rm -f nacos

或者使用下面的方式,先停止再移除

# 先停止nacos容器
docker stop nacos
# 再删除nacos容器
docker remove nacos

然后执行下面命令启动docker,本例nacos的版本是v2.1.1

docker run --restart=always -d -p 8849:8848 -p 9848:9848 --name nacos --network bridge --env MODE=standalone --env SPRING_DATASOURCE_PLATFORM=mysql --env MYSQL_SERVICE_HOST=192.168.10.1 --env MYSQL_SERVICE_PORT=3306 --env MYSQL_SERVICE_DB_NAME=nacos --env MYSQL_SERVICE_USER=root --env MYSQL_SERVICE_PASSWORD=root --env NACOS_AUTH_TOKEN=xxx  nacos/nacos-server:v2.1.1

这样就行了

三、总结

对于这个漏洞大家最好都去排查一下,在第一时间去解决。解决的途径有两种,一就是像上述方法一样修改默认值,二是升级nacos的版本,在新版本中上面的配置被弃用,取而代之的是nacos.core.auth.plugin.nacos.token.secret.key,没有默认值,第一次启动之前需要配置否则会报异常,在一定程度上杜绝了旧版本的默认值问题。

相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
6天前
|
SpringCloudAlibaba 应用服务中间件 Nacos
【微服务 SpringCloudAlibaba】实用篇 · Nacos配置中心(下)
【微服务 SpringCloudAlibaba】实用篇 · Nacos配置中心
19 0
|
6天前
|
JSON SpringCloudAlibaba Java
【微服务 SpringCloudAlibaba】实用篇 · Nacos配置中心(上)
【微服务 SpringCloudAlibaba】实用篇 · Nacos配置中心
23 1
|
6天前
|
Nacos
nacos 配置页面的模糊查询
nacos 配置页面的模糊查询
|
6天前
|
机器学习/深度学习 Java Nacos
Nacos 配置中心(2023旧笔记)
Nacos 配置中心(2023旧笔记)
21 0
|
6天前
|
存储 前端开发 Java
第十一章 Spring Cloud Alibaba nacos配置中心
第十一章 Spring Cloud Alibaba nacos配置中心
30 0
|
6天前
|
敏捷开发 API 持续交付
云效产品使用常见问题之把云效上的配置发到Nacos上面去如何解决
云效作为一款全面覆盖研发全生命周期管理的云端效能平台,致力于帮助企业实现高效协同、敏捷研发和持续交付。本合集收集整理了用户在使用云效过程中遇到的常见问题,问题涉及项目创建与管理、需求规划与迭代、代码托管与版本控制、自动化测试、持续集成与发布等方面。
|
6天前
|
安全 Nacos 数据库
探索 Nacos反序列化漏洞CNVD-2023-45001
Nacos 2.1.0版本遭遇高危反序列化漏洞(CNVD-2023-45001),允许攻击者通过7848端口执行远程代码。影响1.4.0至1.4.6及2.0.0至2.2.3版本。建议用户升级至2.2.3,下载链接:https://github.com/alibaba/nacos/releases/tag/2.2.3。升级过程平滑,数据库无须调整,仅需按文档(https://nacos.io/zh-cn/docs/v2/guide/user/auth.html)配置鉴权。重视安全修复,确保系统安全。
96 7
 探索 Nacos反序列化漏洞CNVD-2023-45001
|
6天前
|
SpringCloudAlibaba Java Nacos
SpringCloud Alibaba微服务 -- Nacos使用以及注册中心和配置中心的应用(保姆级)
SpringCloud Alibaba微服务 -- Nacos使用以及注册中心和配置中心的应用(保姆级)
|
6天前
|
Nacos
nacos手动创建配置命名空间隔离
nacos手动创建配置命名空间隔离
25 1
|
6天前
|
编解码 Java Nacos
nacos常见问题之密码加密配置如何解决
Nacos是阿里云开源的服务发现和配置管理平台,用于构建动态微服务应用架构;本汇总针对Nacos在实际应用中用户常遇到的问题进行了归纳和解答,旨在帮助开发者和运维人员高效解决使用Nacos时的各类疑难杂症。
201 0

热门文章

最新文章