当前位置: 首页 > news >正文

【渗透测试】webpack对于渗透测试的意义

作者 Yuppie001
作者主页 : 传送
本文专栏 Web漏洞篇
🌟🌟🌟🌟🌟🌟🌟🌟

webpack:

  • 一.webpack是什么
  • 二.对于渗透测试的意义:
    • 源代码泄露:
      • 1.mode配置
      • 2.devtool配置
        • 什么是 Source Map?

一.webpack是什么

    Webpack 是一个现代 JavaScript 应用的静态模块打包工具,它将项目中的所有资源(JS、CSS、图片等)视为模块,通过分析模块依赖关系,构建依赖图谱,然后将模块打包成适合浏览器环境的资源包。
在这里插入图片描述

webpack 就是一个“整理和优化”你项目文件的工具。
    假设你有很多零散的材料(文件),像是木板、钉子、颜料等,它们各自散落在不同的地方。如果你直接拿着这些零散的材料去建房子,既麻烦又费时,而且房子可能很不结实。webpack 就是那个帮你把所有材料整理、打包、并且加工优化成一个更高效、更坚固的房子的工具。
被它打包后的文件能提高性能等

操作步骤:
1.创建webpack.config.js,里面配置了webpack如何处理文件的规则和输出方式
2.根据配置的 entry(如 src/index.js),webpack 会从这个文件开始,递归查找这个文件依赖的其他模块。
3.webpack 会读取和解析每个文件,依赖于配置的 loaders,它会使用 css-loader 来处理 CSS 文件,将其转换为 JavaScript 模块,再用 style-loader 把 CSS 内容插入到 HTML 页面中。
4.webpack 会根据入口文件以及其他所有文件的依赖关系,构建一个依赖图,即确定文件之间的关系和加载顺序。
5.webpack 会把所有的模块(包括 JavaScript 和 CSS)打包到一起,生成一个 bundle.js 文件。
6.打包后的文件 dist/bundle.js 包含了所有的依赖,包含 JavaScript 和 CSS 内容

二.对于渗透测试的意义:

源代码泄露:

webpack的打包不仅可以提高性能,对于web安全测试还有附加的效果,会造成前端源代码的隐藏和混淆,但如果webpack.config.js配置不当,同样会造成前端源代码泄露。

1.mode配置

在webpack.config.js中有三个常用的mode配置值,

mode配置值
development开发模式。开启调试工具、详细的 source map 和其他开发便利功能。代码不会进行压缩和混淆,便于调试
production生产模式。开启多种优化功能,如代码压缩、代码分割、Tree Shaking(去除未使用代码)等,生成的代码通常是压缩过的和混淆过的。
none不进行任何内置优化,打包的代码没有优化。

    在development 模式下,webpack 不会对代码进行压缩、混淆和其他优化。源代码会保持原样,易于调试,但这也意味着代码会被暴露给客户端,任何有访问权限的人都能看到原始代码。
标志:浏览器webpack://

在这里插入图片描述

2.devtool配置

    在使用webpack打包部署代码时,如果参数devtool配置不当,将会在部署代码文件中生成对应匹配的soucemap文件(源码映射),如果将参数devtool配置为“source-map”、“cheap-source-map”、“hidden-source-map”、“nosources-source-map”、“cheap-module-source-map”等值时,打包后将生成单独的map文件。
在这里插入图片描述

什么是 Source Map?

    Source Map 是一种将编译后的代码(如压缩过的 JavaScript)与原始源代码之间建立映射关系的技术它使得开发者可以在浏览器中调试压缩、混淆后的代码时,看到原始的源代码,这对于开发调试非常有帮助。

但在生产环境中,source map 文件可能会暴露源代码,因此需要小心配置,避免泄露敏感信息。

配置后,文件会出现//# sourceMappingURL=app.8a0fa534.js.map标志

在这里插入图片描述
它位于当前js文件的同级目录,添加.map后缀即可下载
在这里插入图片描述
在这里插入图片描述
下载后可利用shuji、reverse-sourcemap进行还原
在这里插入图片描述
后续可利用还原的js进行后续测试,如未授权、信息泄露等

相关文章:

  • Linux 如何上传本地文件以及下载文件到本地命令总结
  • WSL2配置Humanoidbench问题mujoco.FatalError: OpenGL version 1.5 or higher required
  • Bash中关于制表符\t站位情况说明
  • 滑动窗口算法详解:从入门到精通
  • 44运营干货:提高用户留存和粘性方式汇总
  • 传输层协议 ——— TCP协议
  • SVG利用+xssgame第8关注入详解
  • 裂缝识别系统 Matlab GUI设计
  • C# Unity 唐老狮 No.10 模拟面试题
  • 路由器与防火墙配置命令
  • QT5.15.2加载pdf为QGraphicsScene的背景
  • Matlab 汽车传动系统的振动特性分析
  • Elasticsearch 滚动索引(Rollover Index)详解
  • 算法基础篇(蓝桥杯常考点)
  • ZED X系列双目3D相机的耐用性与创新设计解析
  • SpringCloud 学习笔记2(Nacos)
  • AMBA-CHI协议详解(二十三)
  • vue2:el-table列中文字前面加icon图标的两种方式
  • AI自动获客系统源码
  • 【LangChain】理论及应用实战(5):Agent
  • 最新研究:基因编辑治疗晚期胃肠道癌显成效
  • 全军军级以上单位新任纪委书记监委主任培训班结业
  • 非洲中青年军官代表团访华,赴北京、长沙、韶山等地参访交流
  • 山东如意集团及实控人等被出具警示函,此前实控人已被罚十年禁止入市
  • 长三角9座“万亿城市”一季报出炉:多地机器人产量大增
  • 夹缝中的责编看行业:长视频之殇,漫长周期