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