文章总结: 本文讲述利用js.map文件泄露还原源码进行渗透的实战案例。通过reverse-sourcemap工具还原Webpack打包后的前端代码,审计发现未授权接口及敏感API。实战中利用还原出的Token获取接口,在同系统不同站点实现通杀并获取管理员权限。建议生产环境关闭SourceMap并开启代码压缩混淆。 综合评分: 88 文章分类: 渗透测试,WEB安全,漏洞分析,安全工具,实战经验
web渗透实战 | js.map文件泄露导致的通杀漏洞
原创
zkaq-bielang zkaq-bielang
掌控安全EDU
2026年2月6日 12:03 江西
扫码领资料
获网安教程
本文由掌控安全学院 – bielang 投稿
来Track安全社区投稿~
千元稿费!还有保底奖励~( https://bbs.zkaq.cn)****
一.简介
js.map 文件是 JavaScript 的 Source Map 文件,用于存储压缩代码与源代码之间的映射关系。它的主要作用是帮助开发者在调试时,将压缩后的代码还原为可读的源代码,从而快速定位问题。
平时渗透过程中,会遇到很多的 webpack 打包的站点,webpack 加载的 js 大部分都是变量名混淆的,渗透测试者不好直接查看不同的接口和调试网页。
Webpack 如何导致 Vue 源码泄露?
Source Map(.map 文件)泄露原始代码
- • 问题:
Webpack 默认生成 Source Map(.map 文件),用于调试压缩后的代码。如果
**.map**文件被部署到线上,攻击者可以借助工具(如**reverse-sourcemap**)还原出完整的原始代码。
示例:打包后的 **app.js** 附带 **app.js.map**,攻击者可以:
bashreverse-sourcemap --output-dir ./stolen_src ./dist/app.js.map
直接还原出 Vue 组件、API 接口、加密逻辑等。
未压缩/未混淆的代码
- • 问题:
如果 Webpack 未启用代码压缩(如
**TerserPlugin**)或混淆(如**uglifyjs**),打包后的代码可能仍然保留 可读的变量名、注释、甚至敏感信息。
示例:代码里有:
jsconst API_KEY = "sk_live_123456"; // Stripe 生产环境密钥
攻击者可以直接在 **bundle.js** 里搜索关键词(如 **API_KEY**、**password**、**secret**)找到敏感数据。
未正确设置 Webpack 的 **mode: 'production'**
- • 问题:
如果 Webpack 配置未指定
**mode: 'production'**,可能会导致: - • 未启用代码压缩优化
- • 包含 开发环境调试代码(如 Vue 的
**devtools**警告) - • 暴露 未使用的代码路径(如测试接口、未启用的功能)
第三方依赖泄露
- • 问题:
如果项目中使用了未正确处理的第三方库(如某些 npm 包可能包含敏感信息),它们也会被打包进
**bundle.js**。 - • 示例: 某些库可能在代码里硬编码测试环境的数据库密码、内部 API 地址等。
二.工具
1. reverse-sourcemap
reverse-sourcemap 是一个工具,用于从 .map 文件中逆向还原 JavaScript 或 CSS 的源码。
1.1. 安装:
- 1. 需要先 安装 Node.js 和 npm。(我没写,自己网上找)
- 2. 使用以下命令全局安装 reverse-sourcemap:
npm install --global reverse-sourcemap
安装完成后,可以通过以下命令检查是否成功:
reverse-sourcemap -h
1.2. 工具使用
在终端中运行以下命令,将源码输出到指定目录:
reverse-sourcemap --output-dir sourceCode example.js.map
现在就还原出来了。
如果需要递归处理多个 .map 文件,可以添加 -r 参数:
reverse-sourcemap -r --output-dir sourceCode
2. SourceDetector(插件)
2.1. 简介
SourceDetector是一个自动发现.map文件,并帮你下载到本地的一个chrome extension。
2.2. 项目地址
https://github.com/LuckyZmj/SourceDetector-dist
2.3. 使用
下载 zip 包之后然后解压,谷歌浏览器添加扩展程序(注意是添加文件中的dist文件夹)
之后你在浏览任何网页时,该插件将自动检测是否有.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 值:
成功进入系统:
最后提取指纹看看资产多少:
申明:本公众号所分享内容仅用于网络安全技术讨论,切勿用于违法途径,
所有渗透都需获取授权,违者后果自行承担,与本号及作者无关,请谨记守法.
没看够~?欢迎关注!
分享本文到朋友圈,可以凭截图找老师领取
上千教程+工具+交流群+靶场账号哦
分享后扫码加我!
回顾往期内容
我与红队:一场网络安全实战的较量与成长
网络安全人员必考的几本证书!
文库|内网神器cs4.0使用说明书
重生HW之感谢客服小姐姐带我进入内网遨游
手把手教你CNVD漏洞挖掘 + 资产收集
【精选】SRC快速入门+上分小秘籍+实战指南
代理池工具撰写 | 只有无尽的跳转,没有封禁的IP!
点赞+在看支持一下吧~感谢看官老爷~
你的点赞是我更新的动力
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:掌控安全EDU zkaq-bielang zkaq-bielang《web渗透实战 | js.map文件泄露导致的通杀漏洞》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。










评论