source map
source map文件是js文件压缩后,文件的变量名替换对应、变量所在位置等元信息数据文件,一般这种文件和min.js主文件放在同一个目录下。 比如压缩后原变量是map,压缩后通过变量替换规则可能会被替换成a,这时source map文件会记录下这个mapping的信息,这样的好处就是说,在调试的时候,如果有一些JS报错,那么浏览器会通过解析这个map文件来重新merge压缩后的js,使开发者可以用未压缩前的代码来调试
漏洞风险
攻击者可以通过泄露的前端源代码可以针对源代码对代码中各种信息如隐蔽接口、API、加密算法、管理员邮箱、内部功能等等,或者接口API可以尝试未授权漏洞,拼接接口越权漏洞,查找源代码中关键字去GitHub查找程序源码进行代码审计。
渗透过程
使用Burp suite抓包,搜索js.map
其实还有更简单的工具chrome插件source detecotor
SourceDetector/app at master · SunHuawei/SourceDetector · GitHub
下载好js.map文件后就是逆向还原操作,我们用到的工具reverse-sourcemap
安装reverse-sourcemap
winget install node.js
npm install --global reverse-sourcemap
使用reverse-sourcemap还原代码
reverse-sourcemap -o aaa -v XXXX.js.map
-o:还原后的目录,-v:需要还原的文件
由于使用的是win系统这里还有一个坑,写绝对路径会报错
解决方法,把js.map文件和还原目录放在一个路径下,cmd先进入路径
查看还原的前端代码
修复建议
1.在项目路径下修改config/index.js中build对象productionSourceMap: false;
2.建议删除或禁止访问正式环境中的js.map文件
版权归原作者 lyink001 所有, 如有侵权,请联系我们删除。