1、概述
日常捡洞,发现某公司云服务平台存在nacos权限认证绕过漏洞。在这之前还真是第一次遇见,所有对于渗透测试来说永远要学习新的知识,当然也不可能所有的都能学到,只能是遇见不熟悉的立即去学这才是应有的态度。谁也没有绝对的把握说自己什么都懂。
2、漏洞复现
浏览器访问测试域名,第一步要做的永远是信息收集,对于此次的漏洞发现是对域名进行目录扫描中发现的问题。首先来说下什么是Nacos?
阿里为 SpringCloud 贡献了一个子项目,叫做 SpringCloud Alibaba,其中包括了微服务开发中的几个基础组件,Nacos 就是此项目中的一项技术。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理。
通过目录探测,系统存在nacos/目录,浏览器访问https://www.example.com/nacos。
通过漏洞探测,发现此系统存在权限认证绕过漏洞。根据漏洞payload,直接访问URL:https://www.example.com/nacos/v1/auth/users?pageNo=1&pageSize=1000,可以直接查看系统用户列表以及加密的密码,这里相当于未授权访问。
然后接下来,访问URL:https://www.example.com//nacos/v1/auth/usersusername=test1&password=Test@123,抓取数据包,将数据包GET 改为POST方式提交,User-Agent必须修改为User-Agent: Nacos-Server,发送修改后的数据包,可添加用户test1 密码为:Test@123 提交数据包后提示创建用户成功。
再次访问URL:https://www.example.com/nacos/v1/auth/users?pageNo=1&pageSize=1000,查看用户,已经成功添加至系统用户例表中。
使用添加用户进行登录操作,可成功登录系统。
完成权限认证绕过的关键在于User-Agent必须修改为User-Agent: Nacos-Server。测试完成后可通过构造数据包对测试用户进行删除,如下图所示:
查看系统用户列表用户删除成功,测试完成。
通过分析,系统存在用户nacos 且默认密码为nacos 可用默认账户、密码直接登录系统。这里对比了一下用户密码加密字符串与默认密码的加密字符串一致。
3、修复建议
① 修改默认口令,口令长度不小于8位,包含数字、大小写字母、特殊字符等。
② 升级至最新版本并根据文档进行升级及修复
③ Nacos 定义为一个应用服务发现和配置管理中间件服务,这类应用一般应该部署于内部网络,因此不建议用户将Nacos暴露在公网环境。
4、结束语
SRC可以作为渗透测试挖漏洞练手的一种方式也是一种学习方式,见多识广嘛。所以在SRC的过程中也需要一个笔记本记下来。
各位师傅可以关注一下 “sahx安全从业记” 公众号,本站持续更新SRC日常捡洞,后续会在自己的公众号写一些漏洞复现、项目实战、靶场复现、工具推荐等相关的内容,上班比较忙更新可能会慢一些。
日常SRC捡洞,欢迎有兴趣的师傅前来交流,看着还不错不妨给个小关注,关注不迷路。如有错误还望各位师傅不吝赐教!!