『杂项』Webpack 笔记

admin 2023年4月25日19:22:35评论42 views字数 1923阅读6分24秒阅读模式

点击蓝字

关注我们


日期:2023-04-25
作者:L-Center
介绍:Webpack 相关笔记

0x00 什么是 Webpack

webpack是代码编译工具,有入口、出口、loader和插件。

webpack是一个用于现代javascript应用程序的静态模块打包工具。

简单来说:webpack就是一个打包器(bundler),它能将多个jscssjson等文件打包成一个文件。

这样可以使加载文件整合为单一的集合,让代码更加模块化,便于编程使用和浏览器加载。

『杂项』Webpack 笔记

0x01 安全问题

大部分Vue应用会使用webpack进行打包,如果没有正确配置,就会导致Vue源码泄露。

如果可以获得程序的js代码,那么就可以针对源代码对代码中各种信息如隐蔽接口、API、加密算法、管理员邮箱、内部功能等等,或者接口API可以尝试未授权漏洞,拼接接口越权漏洞,查找源代码中关键字去GitHub查找程序源码进行代码审计。

『杂项』Webpack 笔记

1.1 漏洞发现

特征:

http://www.xxxx.com/login#/homehttp://www.xxxx.com/index.html#http://www.xxxx.com/xxx#

『杂项』Webpack 笔记

Chrome:在常规选项卡开启Enable JavaScript source mapsEnable CSS source maps

『杂项』Webpack 笔记
『杂项』Webpack 笔记

使用谷歌插件识别:wappalyzer

『杂项』Webpack 笔记

1.2 获得源码

我们进入到一个*.js的页面查看源码:

然后在后缀加上.map访问https://xxx.js.map会直接下载js.map

『杂项』Webpack 笔记

1.3 Source map

打开Source map文件:

{ version : 3         //Source map的版本,目前为3。 file: "out.js"     //转换后的文件名 sourceRoot : ""   //转换前的文件所在的目录。如果与转换前的文件在同一目录,该项为空。 sources: ["foo.js", "bar.js"] //转换前的文件。该项是一个数组,表示可能存在多个文件合并。 names: ["src", "maps", "are", "fun"] //转换前的所有变量名和属性名。 mappings: "AAgBC,SAAQ,CAAEA"    //包含实际代码映射的一串Base64 VLQ。(让source map文件变小的核心)  }

反编译方法一:reverse-sourcemap

官网:https://www.npmjs.com/package/reverse-sourcemap
步骤一:输入如下内容npm install --global reverse-sourcemap步骤二:以xxxx.js.map文件为例进行反编译。步骤三:将步骤二的test.js.map文件放到目录中。步骤四:打开终端,cd到存放的目录,然后输入reverse-sourcemap -v test.js.map -o output,实现将反编译后的源码输入到output目录。

反编译方法二:shuji

官网:https://www.npmjs.com/package/shujinpm install --global shujishuji file.js.map -o folder

还原后的效果:

『杂项』Webpack 笔记

利用插件——SourceDetector

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

插件下载地址:

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

『杂项』Webpack 笔记

还原后的效果:

『杂项』Webpack 笔记

1.4 自动化测试

这里推荐两个自动化测试工具:

1、Packer Fuzzer

工具下载地址:https://github.com/rtcatc/Packer-Fuzzer
sudo apt install nodejspip3 install -r requirements.txtpython3 PackerFuzzer.py -u www.xxx.com

『杂项』Webpack 笔记

2、Webpackfind

工具下载地址:https://github.com/xz-zone/Webpackfind
Ubuntu 运行环境chmod 777 build.sh./build.shWindows模块安装python3 -m pip install -r requirements.txtpython3 webpackfind.py -u www.xxx.com
『杂项』Webpack 笔记

0x02 总结

Webpack漏洞是在渗透过程中经常遇见的一种,我们可以通过此漏洞得到很多后续的漏洞。

免责声明:本文仅供安全研究与讨论之用,严禁用于非法用途,违者后果自负。

原文始发于微信公众号(宸极实验室):『杂项』Webpack 笔记

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年4月25日19:22:35
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   『杂项』Webpack 笔记http://cn-sec.com/archives/1691921.html

发表评论

匿名网友 填写信息