Nacos Namespace 未授权访问漏洞: 55391

我正在参加「金石计划」

1.nacos身份绕过漏洞

Nacos Namespace 未授权访问漏洞(漏洞编号:55391)

该漏洞,在开启nacos.core.auth.enabled=true后,未登录情况下,命名空间列表依然能加载出来。

官方目前还未解决(2023-11-15),但我们通过修改nacos源码,来处理该nacos漏洞。

2.漏洞分析

Nacos是一个易于使用的平台,专为动态服务发现和配置以及服务管理而设计。可以帮助您轻松构建云原生应用程序和微服务平台。

目前,Nacos 是一个为动态服务发现和配置以及服务管理而设计的平台。Nacos Namespace部分的代码实现路由没有加入鉴权,所以即使是开启auth的情况下,照样能访问Namespace,攻击者仍然可以对Namespace进行增删改查操作。

目前厂商暂未发布修复措施解决此安全问题,建议使用此软件的用户随时关注厂商主页或参考网址以获取解决办法:github.com/alibaba/nac...

3.源码修改

这里基于nacos-2.2.3版本的源码进行修改。

对于nacos源码的构建,有兴趣的小伙伴可以参考我之前的文章:nacos适配达梦、人大金仓数据库,这里就不再过多的描述了。

通过调试可以发现NameSpace列表访问的接口,是这个:com.alibaba.nacos.console.controller.NamespaceController

通过调试可以发现,是通过com.alibaba.nacos.core.auth.AuthFilter进行权限校验的

判断的依据是,方法上面,是否有加 @Secured 注解

所以我们加上 @Secured 注解即可:(可以参考其他方法)

java 复制代码
@Secured(resource = AuthConstants.CONSOLE_RESOURCE_NAME_PREFIX + "namespaces", action = ActionTypes.WRITE)

修改完,可以本地调试,查看漏洞修复情况;如果没什么问题,就可以对nacos源码进行编译打包。

mvn 复制代码
mvn -Prelease-nacos -Dmaven.test.skip=true -Dcheckstyle.skip=true clean install -U

如有不懂的,可以参考我之前的文章。

其实,该漏洞修复,也不是很难,大家赶紧去尝试一下吧。


好了,以上就是我个人的实操了。可能有些不对,大家伙,轻点喷!!!

个人理解,可能也不够全面,班门弄斧了。

好了,今天就先到这里了!!!^_^

如果觉得有收获的,帮忙点赞、评论、收藏一下,再走呗!!!

相关推荐
阳光是sunny16 分钟前
LangGraph实战教程:defer延迟节点——让收尾工作自动排到最后
前端·人工智能·后端
前端工作日常16 分钟前
我学习到的Java中domain和dto区别
java·后端
kite012118 分钟前
Go语言Map深度解析与最佳实践
开发语言·后端·golang
阳光是sunny37 分钟前
LangGraph实战教程:控制流详解
前端·人工智能·后端
码农学院38 分钟前
基于Spring Boot的跨境电商多语言订单管理系统架构设计
java·大数据·spring boot
hold?fish:palm2 小时前
kv存储主从复制的设计与实现
c++·redis·后端
swipe2 小时前
07|(前端转后全栈)为什么后端也要缓存?从前端缓存思维理解 Redis
前端·后端·全栈
952362 小时前
Docker - 基础
运维·后端·docker·容器
swipe2 小时前
06|(前端转后全栈)登录后端到底在做什么?JWT、Spring Security 和权限链路
前端·后端·全栈