一、漏洞简介
在Vue项目中使用Webpack时,如果未正确配置,会生成一个.map文件,它包含了原始JavaScript代码的映射信息。这个.map文件可以被工具用来还原Vue应用的源代码,从而可能导致敏感信息的泄露等风险
二、配置环境
安装nodejs查看版本信息: npm -v
安装reverse-sourcemapnpm install -g reverse-sourcemap
三、js.map反编译
在目录扫描、Burpsuite数据返回包中发现存在js.map路径,下载该文件进行反编译:
reverse-sourcemap --output-dir . xxx.js.map
反编译后,即可查看源码JS文件结构及内容
通过泄露的Webpack源码,可以搜索API接口、AccessKey、Password、Phone等敏感信息
四、修复建议
禁用生成源映射文件:在生产环境中,应该禁用生成.map文件或者配置Webpack不生成这些文件。这可以通过在Webpack配置中设置devtool选项为false或者none来实现
示例配置:
javascriptmodule.exports = { // 其他配置... devtool: false, // 或者 'none'};
限制源映射的访问权限:如果无法完全禁用.map文件的生成,确保这些文件仅在需要调试时可用,并限制访问权限。
可以通过Web服务器配置、权限设置或者在构建后删除这些文件来实现限制访问加密或混淆源映射文件:
对生成的.map文件进行加密或者混淆,以增加泄露后的难度。这可以通过使用专门的工具或者插件来实现