webpack源码泄露漏洞
webpack源码泄露
本文参考内容:
https://blog.csdn.net/weixin_43571641/article/details/121689764
https://blog.csdn.net/weixin_43571641/article/details/121689764
webpack是什么
本质上,webpack 是一个用于现代 JavaScript 应用程序的 静态模块打包工具。当 webpack 处理应用程序时,它会在内部从一个或多个入口点构建一个 依赖图(dependency graph),然后将你项目中所需的每一个模块组合成一个或多个 bundles,它们均为静态资源,用于展示你的内容。
WebPack可以看做是模块打包机:它做的事情是,分析你的项目结构,找到JavaScript模块以及其它的一些浏览器不能直接运行的拓展语言(Scss,TypeScript等),并将其转换和打包为合适的格式供浏览器使用。
webpack的功能
webpack是一个打包器(bundler),它能将多个js、css、json等文件打包成一个文件。这样可以使复杂的各种加载文件集合为整合为单一的集合,让代码更加模块化便于编程使用和浏览器加载。
漏洞简介
webpack会递归构建一个关系依赖图,其中包含应用程序需要的每个模块,然后将这些模块打包成一个或多个bundle。
如果webpack没有被正确配置,就会导致源码泄露的情况。
可能泄露api、加密算法、管理员邮箱、内部功能等等。
如何判断存在webpack源码泄露
webpack项目源码泄露的情况下可以在浏览器的“来源”->webpack://中查看源代码
使用webpack打包应用程序会在网站js同目录下生成js.map文件。
可以通过查看网站的js文件末尾处获知js.map的文件名。
漏洞利用
在某些情况下,不能直接在浏览器控制台中的Sources—> Page—> webpack://中查看到webpack项目源码,但是网站上存在js.map文件,我们可以通过一些工具将js.map中的内容进行还原webpack项目源码。
可用工具:
- reverse-sourcemap
- shuji
- packkerfuzzer
SourceDetector是一个谷歌浏览器插件,此插件可以自动的判断网站是否存在js.map文件,并且能够利用该插件直接下载到js.map的webpack项目源码