点击蓝字
关注我们
日期:2023-04-25 作者:L-Center 介绍:Webpack 相关笔记
0x00 什么是 Webpack
webpack
是代码编译工具,有入口、出口、loader
和插件。
webpack
是一个用于现代javascript
应用程序的静态模块打包工具。
简单来说:webpack
就是一个打包器(bundler)
,它能将多个js
、css
、json
等文件打包成一个文件。
这样可以使加载文件整合为单一的集合,让代码更加模块化,便于编程使用和浏览器加载。
0x01 安全问题
大部分Vue
应用会使用webpack
进行打包,如果没有正确配置,就会导致Vue
源码泄露。
如果可以获得程序的js
代码,那么就可以针对源代码对代码中各种信息如隐蔽接口、API
、加密算法、管理员邮箱、内部功能等等,或者接口API
可以尝试未授权漏洞,拼接接口越权漏洞,查找源代码中关键字去GitHub
查找程序源码进行代码审计。
1.1 漏洞发现
特征:
http:
/
/www.xxxx.com/login
#/home
http:
/
/www.xxxx.com/index
.html
#
http:
/
/www.xxxx.com/xxx
#
Chrome
:在常规选项卡开启Enable JavaScript source maps
和Enable CSS source maps
。
使用谷歌插件识别:wappalyzer
1.2 获得源码
我们进入到一个*.js
的页面查看源码:
然后在后缀加上.map
访问https://xxx.js.map
会直接下载js.map
。
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
步骤一:输入如下内容
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/shuji
npm install --
global
shuji
shuji file.js.map -o folder
还原后的效果:
利用插件——SourceDetector
SourceDetector
是一个谷歌浏览器插件,这个插件可以自动的判断网站是否存在js.map
文件,并且能够利用该插件直接下载到js.map
的Vue
源码。
插件下载地址:
https://github.com/LuckyZmj/SourceDetector-dist
还原后的效果:
1.4 自动化测试
这里推荐两个自动化测试工具:
1、Packer Fuzzer
sudo
apt
install
nodejs
pip3
install
-r
requirements
.txt
python3
PackerFuzzer
.py
-u
www
.xxx
.com
2、Webpackfind
Ubuntu
运行环境
chmod
777 build.sh
./build.sh
Windows模块安装
python3
-m pip install -r requirements.txt
python3
webpackfind.py -u www.xxx.com
0x02 总结
Webpack
漏洞是在渗透过程中经常遇见的一种,我们可以通过此漏洞得到很多后续的漏洞。
免责声明:本文仅供安全研究与讨论之用,严禁用于非法用途,违者后果自负。
原文始发于微信公众号(宸极实验室):『杂项』Webpack 笔记
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论