说说 Webpack 信息泄露
常见的泄露文件和表现形式
\*.js.map
文件: 这是最常见的sourcemap
文件,例如main.bundle.js.map
。通过这些文件,可以还原出完整的源代码目录结构和内容- 源代码中的注释: 开发过程中留下的注释,如TODO、FIXME、调试信息,甚至是一些硬编码的敏感信息
- 前端路由和API接口地址:
sourcemap
中会暴露所有前端路由配置,攻击者可以借此发现未公开的页面或接口 - 环境变量和密钥: 如果在前端代码中使用了
process.env
等方式读取了后端传递的环境变量,这些变量可能会被打包并泄露 - 打包配置文件: 一些不当的配置可能会导致
webpack.config.js
等文件也被泄露,从中可以获取更多项目结构和依赖信息
渗透测试中的利用方法
- 发现目标: 首先,通过浏览器或Burp Suite等工具访问目标网站,观察前端加载的
.js
文件,看是否存在.map
文件。例如,如果存在main.bundle.js
,尝试访问main.bundle.js.map
- 目录猜解: 有时
sourcemap
文件没有直接暴露,但可以通过对.js
文件的URL进行目录猜解。比如,如果js
文件在/static/js/
下,那么sourcemap
可能也在这个目录下 - 使用自动化工具: 有很多工具可以自动化这一过程。例如,使用
npm install -g reverse-sourcemap
安装的工具可以从*.js.map
文件还原出源代码。此外,一些渗透测试框架如Nuclei
也包含了专门针对Webpack信息泄露的扫描模板 - 手动分析: 如果找到了
sourcemap
文件,下载下来并使用文本编辑器打开。.map
文件是JSON格式,其中sourcesContent
字段包含了原始的源代码内容,sources
字段包含了原始的文件路径。通过分析这些字段,可以快速定位敏感信息