0x01 前言
随着前端工程化的发展,Webpack 已成为主流的打包工具之一。它通过构建模块间的依赖关系,将分散的 JavaScript、CSS、图片等资源打包成可供浏览器加载的文件,从而提升开发效率与性能。然而,在实际应用中,如果未正确配置生产环境打包,可能会导致源码泄露、敏感信息暴露等安全风险。
- 需要JS逆向文章访问此链接查看:https://t.zsxq.com/mJ9Vp
0x02 漏洞详情(一)
webpack理解
Webpack是一种用于打包JavaScript应用程序的工具,它通过将应用程序中的各个模块构建起依赖关系,并将这些模块打包成一个或多个文件,通常称为bundle(捆绑文件)。比如,index.html中可能引用了index.js、footer.js和banner.js,你可以使用Webpack将它们打包成一个main.js,然后在index.html中引用这个main.js。
webpack会导致什么?
在使用Webpack打包应用时,如果在生成打包文件的过程中没有及时清理.map文件,可能会造成源代码的泄露。.map文件可以被视为一个“源代码地图”,它允许攻击者还原出源代码,从而暴露应用中的敏感接口、密钥等信息。尤其是在生产环境中,未清理的.map文件可能导致安全漏洞的发生,使得攻击者可以轻松获取源代码,进而发掘潜在的漏洞。
通过相关工具,可以将.map文件还原成源代码,然后进行源代码审计,发现漏洞。
漏洞危害
-
泄露的源码可能包含以下敏感信息,导致进一步攻击:
-
业务逻辑暴露:API 接口路径、权限验证逻辑、加密算法(如登录密码加解密方式);
-
敏感数据泄露:管理员邮箱、内网 IP 地址、数据库连接配置(若开发阶段未删除测试配置);
-
攻击面扩大:还原后的代码可辅助挖掘 XSS、越权访问等漏洞。
如何识别webpack
使用wapplyzer浏览器插件进行识别
F12,查看网页代码接口,webpack://目录,或者JS文件中,含有.map文件路径
接口的爬取
webpack打包主要会导致接口和敏感信息的泄露,所以需要接口和敏感信息提取来快速挖洞
1, 可以直接使用工具快速进行API接口的提取,jjjjjjjjjs
2,可以使用FindSomething浏览器插件提取敏感信息和接口
3,手动分析源代码,编写脚本提取JS文件路径,然后使用脚本访问JS文件,进行接口提取。
接口如何提取
批量探测方法
-
获取HTML页面
-
解析JS文件链接
-
并发检测JS文件
-
特征检测
-
版本检测
-
SourceMap检测
-
输出CSV/HTML文件
SourceDetectorMap(插件)
下载地址:
https://t.zsxq.com/4Vab5
漏洞利用
1. 下载 .map 文件:通过上述方法获取目标网站的 .map 文件;
2. 还原源码:使用 reverse-sourcemap 工具还原原始项目结构:
- npm install -g reverse-sourcemap
- reverse-sourcemap –output-dir ./src main.js.map
还原后的代码将保留原始目录结构(如 Vue 组件的 assets、router 目录)
3. 分析敏感信息:重点检查 config/(配置)、api/(接口)、utils/(通用函数)等目录
下面列举常见见的攻击手法
SRC漏洞挖掘篇之.map文件泄露导致的通杀漏洞
访问到一个站点:
http://oa.xxxxx.com:2345/login?redirect=%2F
登录口,常规手法无效,无突破。
发现.js.map 文件,反编译发现大量接口:
审计 js 发现好几个接口未授权,但是没什么有价值东西,还是不能突破登录口,于是提指纹找相同系统,运气很好,找到一个测试站点:
http://xx.xx.xx.xx:7777/
使用超管账号登录查看 bp 流量:
发现一个接口通过 token 返回了管理员的账号和密码:
/xx/xx/getInfoByToken?token=eyJxx.xx.xx
突发奇想将当前系统的接口以及 token 信息带到不同网站去尝试:
结果也返回了当前系统的管理员信息,解密 md5 值
成功进入系统
通过webpack发现未授权+敏感信息泄露+任意用户密码重置案例
站点是webpack打包 app.js 还有路由的js没有登录就有大量js接口还有path路径泄露
以普通用户身份登录,所有的还活着的接口都能访问,很多管理员才能访问接口也能访问,并且进行增删改查等操作
大量敏感信息
根据上面翻js,找到下面这个页面,接口回显所有用过这个系统的用户的信息
任意用户密码重置
在修改密码界面抓取提交的报文,修改成我们前面拿到的各种信息,对应起来id,userNum,cardNum可以实现所有用户的密码修改和信息修改
对应不起来会报错
重置其他用户密码并且登录成功
参考文章:
- https://blog.csdn.net/weixin_43571641/article/details/121689764
- https://mp.weixin.qq.com/s/TczpomP50mFpw7dJlVVccg
- https://blog.csdn.net/Libra1313/article/details/145531370
- https://github.com/ttstormxx/jjjjjjjjjjjjjs webpack api
- https://www.freebuf.com/articles/defense/418171.html
- https://xz.aliyun.com/news/17972
暂无评论内容