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

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

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


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

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

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

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

相关推荐
西安邮电大学3 分钟前
有关数组的经典算法题
java·后端·其他·算法·面试
山东点狮信息科技有限公司3 分钟前
点狮HRM-HRM系统安全体系与数据保护方案
后端·安全·spring·spring cloud·微服务·系统安全·资产
一 乐15 分钟前
幼儿园管理系统|基于springboot + vue幼儿园管理系统(源码+数据库+文档)
java·数据库·vue.js·spring boot·论文·毕设·幼儿园管理系统
摇滚侠21 分钟前
SpringMVC 入门到实战 SpringMVC 的执行流程 96
java·后端·spring·maven·intellij-idea
布朗克16836 分钟前
38 Spring Boot入门——自动配置、核心注解与Starter机制
java·spring boot·后端
程序员老申40 分钟前
外呼突然全挂了,追查 24 分钟后我发现了 etcd 最阴的一颗雷
后端·程序员
何以解忧,唯有..41 分钟前
Go语言变量的声明方式详解
开发语言·后端·golang
长栎42 分钟前
MyBatis 缓存为啥总是失效?装饰器模式套娃的代价
后端
bright_ye43 分钟前
setjmp & longjmp 深度详解 + 代码示例
后端
To_OC43 分钟前
我一直以为 Ajax 是个黑盒,直到我写了这 50 行代码
前端·后端·全栈