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源码泄露

  1. webpack项目源码泄露的情况下可以在浏览器的“来源”->webpack://中查看源代码

  2. 使用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项目源码