0x1前言
浅谈
这篇文章给师傅们分享下前段时间跟其他师傅学习和交流的Webpack相关漏洞,这个漏洞相对来说比较冷门,在web漏洞中不是那么的热度高,但是平常去挖掘和发现这个漏洞相对来说还是不难的。
后面要是有机会可以给师傅们分享下油猴的相关脚本去找Webpack漏洞泄露的js敏感路径,然后打一波Webpack漏洞。在企业src和众测中有些平台还是收的,不收的话就当学习了,收了咱们就赚了哈!
0x2 Webpack简介
Webpack是一个JavaScript应用程序的静态资源打包器(module bundler)。它会递归构建一个依赖关系图(dependency graph),其中包含应用程序需要的每个模块,然后将所有这些模块打包成一个或多个bundle。大部分Vue等应用项目会使用Webpack进行打包,如果没有正确配置,就会导致项目源码泄露,可能泄露的各种信息如API、加密算法、管理员邮箱、内部功能等等。
Webpack主要功能
- 支持各种模块化规范,如CommonJS、ES6、AMD等。
- 能够自动生成依赖树,并生成对应的代码块。
- 支持各种类型的资源,如图片、CSS、JS等。
- 可以使用各种插件和loader,例如压缩、混淆代码、样式预处理等。
- 可以对代码进行拆分和合并,提高代码的性能和效率。
0x3 信息收集
浅谈
webpack是一个打包工具,他的宗旨是一切静态资源皆可打包。有人就会问为什么要webpack?
webpack是现代前端技术的基石,常规的开发方式,比如jquery,html,css静态网页开发已经落后了。
现在是MVVM的时代,数据驱动界面。webpack它做的事情是,分析你的项目结构,找JavaScript模块以及其它的一些浏览器不能直接运行的拓展语言(Scss,TypeScript等),并将其打包为合适的格式以供浏览器使用。
最简单的看出来这个站点是不是webpack打包的站点,直接使用下面的wappalyzer工具进行查看
Packer-Fuzzer工具
https://github.com/rtcatc/Packer-Fuzzer?tab=readme-ov-file
随着WEB前端打包工具的流行,您在日常渗透测试、安全服务中是否遇到越来越多以Webpack打包器
为代表的网站?这类打包器会将整站的API和API参数打包在一起供Web集中调用,这也便于我们快速发现网站的功能和API清单,但往往这些打包器所生成的JS文件数量异常之多并且总JS代码量异常庞大(多达上万行),这给我们的手工测试带来了极大的不便,Packer Fuzzer软件应运而生。
本工具支持自动模糊提取对应目标站点的API以及API对应的参数内容,并支持对:未授权访问、敏感信息泄露、CORS、SQL注入、水平越权、弱口令、任意文件上传七大漏洞进行模糊高效的快速检测。在扫描结束之后,本工具还支持自动生成扫描报告,您可以选择便于分析的HTML版本以及较为正规的doc、pdf、txt版本。
我们首先得把源码下载下来,然后丢到mac系统或者linux系统下
我这边的云服务器是Centos的系统,可以参考我运行的命令如下:
Batch
1、sudo yum -y install epel-release && sudo yum install python3 && yum install -y python3-setuptools && easy_install pip
2、sudo yum -y install nodejs
3、pip3 install -r requirements.txt
要是中途出错误,可以放到GPT里面问问,然后按照它的建议来执行命令
网站检测
直接开始使用这个工具进行网站检测
Batch
python3 PackerFuzzer.py -u "IP" -l zh
//-u 接url地址
//-l zh 是显示中文的意思 因为这个工具默认是英文
然后检测完成以后,检测的报告会在reports目录下
这个工具因为是模糊匹配检测,所有不一定扫描结果都正确,所以后面还是需要进行验证
然后检测完成以后,检测的报告会在reports目录下
这个工具因为是模糊匹配检测,所有不一定扫描结果都正确,所以后面还是需要进行验证
然后我把生成的报告可以放到本地去利用word文档打开,可以看到下面的word文档,这个工具自动帮你把里面的js文件包括漏洞报告都给你写好了,感觉要是给甲方爸爸用用还是蛮不错的一个工具哈!
里面扫描出来的很多的 js文件,要是懂js的师傅可以尝试分析下,很容易打出js接口信息泄露的相关漏洞
0x4 总结
这篇文章对于Webpack相关的漏洞先介绍到这里,然后后面会给师傅们分享下我利用Webpack的相关插件和脚本工具在某src的一次实战经验分享。当时就是利用脚本把改站点的js.map包下载本地,然后反编译,然后拿到很多的js泄露文件,里面有很多的敏感信息文件的泄露。
文章中涉及的敏感信息均已做打码处理,文章仅做经验分享用途,切勿当真,未授权的攻击属于非法行为!文章中敏感信息均已做多层打码处理。传播、利用本文章所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,作者不为此承担任何责任,一旦造成后果请自行承担!