但引起我关注的漏洞是 CVE-2025-30208 Vite Development Server Arbitrary File Read 这个任意文件读取漏洞。 其实我们很多时候都轻视了任意文件读取漏洞,特别是很多刚入行学习网安的师傅,往往瞧不上任意文件读取漏洞,其实这是一种偏见。 今天就从 CVE-2025-30208 发散去讲任意文件读取漏洞,这种漏洞是有操作空间的,况且 CVE-2025-30208 利用简单、覆盖面广,那就有必要拎出来和大家交流一下,今天我就来抛砖引玉一下。
1# 漏洞原理? CVE-2025-30208 漏洞原理非常简单,就简单提一下: Vite 开发服务器提供 @fs 机制,用于防止访问 Vite 允许列表之外的文件。然而,由于 URL 解析时的正则表达式处理不当,攻击者可以通过 ?raw?? 或 ?import&raw?? 等查询参数绕过访问限制,从而读取任意文件。 在 Vite 服务器的 URL 处理逻辑中,@fs 机制原本用于限制对非白名单目录的访问,例如: Vite 在 URL 解析过程中会移除部分特殊字符,而未正确考虑查询参数的影响,导致攻击者可以构造类似如下的请求绕过安全检查: 由于 Vite 解析 URL 时未正确处理这些参数,导致绕过 server.fs.allow 限制,并返回任意文件内容。 按理说,此漏洞仅影响明确将 Vite 开发服务器暴露到网络的应用程序,即使用 --host 或 server.host 配置选项的情况。 但经过公网的资产测绘来看,涉及的数量非常可观,且实际测试的结果发现成功率较高,怪不得各家厂商都打上了高危的标签,该漏洞Exploit工具已经公开,Github地址:https://github.com/ThumpBo/CVE-2025-30208-EXP
3# 什么是bash_history? 众所周知,Linux用户的根目录是有区别的,root用户的根目录在 /root,而其他用户的根目录一般在 /home/用户名,比如我有一个名叫 demo 的用户,那这个用户的根目录在 /home/demo 下。 在Linux系统下每个用户的根目录下,都有四个bash隐藏文件,需要使用 ll -a 参数才会显示出来: 其中今天要说的主角是 .bash_history,它是Linux 命令的历史记录,会持久化存储,默认位置是当前用户根目录的 .bash_history 文件。 当 Linux 系统启动一个 Shell 时,Shell 会从 .bash_history 文件中,读取历史记录,存储在相应内存的缓冲区中。 我们平时所操作的 Linux 命令,都会记录在缓冲区中。包括 history 命令所执行的历史命令管理,都是在操作缓冲区,而不是直接操作 .bash_history 文件。 当我们退出 Shell,比如按下 Ctrl+D 时,Shell 进程会把历史记录缓冲区的内容,写回到 .bash_history 文件中去。
没有评论