挖洞思路:前端源码泄露漏洞并用source map文件还原

0x01漏洞简介

webpack是一个JavaScript应用程序的静态资源打包器(module bundler)。它会递归构建一个依赖关系图(dependency graph),其中包含应用程序需要的每个模块,然后将所有这些模块打包成一个或多个bundle。大部分Vue应用会使用webpack进行打包,如果没有正确配置,就会导致Vue源码泄露,可能泄露的各种信息如API、加密算法、管理员邮箱、内部功能等等。

0x02 漏洞复现

找到含.map的js页面
进入到一个*.js的页面查看源码:
在这里插入图片描述
选一个点进去拉到最下面:
在这里插入图片描述
后缀加上.map访问https://xxx.js.map

会直接下载app.91c9e19843b6a38f9ff5.js.map

0x03 source map文件还原

reverse-sourcemap

这个工具,两年前发布的,居然文件和目录都能全部还原出来,牛逼。

全局安装

npm install --global reverse-sourcemap

然后( -o 后面跟的是还原后的目录)

reverse-sourcemap -o aaa -v app.9fbea7c7.js.map

0x04 检测插件

SourceDetector是一个谷歌浏览器插件,此插件可以自动的判断网站是否存在js.map文件,并且能够利用该插件直接下载到js.map的Vue源码

git clone https://github.com/LuckyZmj/SourceDetector-dist

提示:
如果此命令下载失败,可直接访问https://github.com/LuckyZmj/SourceDetector-dist下载.zip文件:
在这里插入图片描述
然后解压,谷歌浏览器添加扩展程序(注意是添加文件中的dist文件夹)在这里插入图片描述

在这里插入图片描述

0x05 漏洞修复

  • 在项目路径下修改config/index.js中build对象productionSourceMap: false;
  • 建议删除或禁止访问正式环境中的js.map文件;
  • 10
    点赞
  • 39
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
引用\[1\]:运行react项目时报错"Uncaught TypeError: Cannot read properties of undefined (reading 'forEach')",引用\[2\]:在开发环境中使用react-devtools时报错"Uncaught TypeError: Cannot read property 'forEach' of undefined",引用\[3\]:经过排查发现这个问题可能是由于版本不匹配引起的。如果你使用的是React版本17.0.1,那么应该使用react-devtools的v4以上版本。你可以从这个地址下载v4插件:https://www.crx4chrome.com/crx/3068/,下载完后将插件的.crx后缀名改为.rar,然后解压该文件。解压后,你可以找到一个合适的插件版本来解决这个问题。 根据你提供的错误信息"react-refresh-runtime.development.js:315 Uncaught TypeError: Cannot read properties of undefined (reading 'map')",这个错误可能是由于在react-refresh-runtime.development.js文件的第315行尝试对一个未定义的对象进行map操作引起的。这可能是由于你的代码中存在某个变量或属性未被正确定义或初始化导致的。你可以检查一下你的代码,确保所有的变量和属性都被正确定义和初始化。另外,你也可以尝试更新React和react-devtools的版本,以确保它们之间的兼容性。 总结一下,这个错误可能是由于版本不匹配或代码中存在未定义的变量或属性引起的。你可以尝试更新React和react-devtools的版本,并检查你的代码中是否存在未定义的变量或属性。希望这些信息对你有帮助。\[1\]\[2\]\[3\] #### 引用[.reference_title] - *1* [react 谷歌浏览器报错:Uncaught TypeError: Cannot read properties of undefined (reading ‘forEach‘)](https://blog.csdn.net/u010234868/article/details/124380800)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [使用react-devtools后出现Uncaught TypeError: Cannot read property ‘forEach‘ of undefined的解决方法](https://blog.csdn.net/Leo_xian/article/details/112899961)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值