从.map文件到敏感接口:渗透测试中Webpack的突破点

从.map文件到敏感接口:渗透测试中Webpack的突破点

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文件可能导致安全漏洞的发生,使得攻击者可以轻松获取源代码,进而发掘潜在的漏洞。

微信图片_20250915220520

通过相关工具,可以将.map文件还原成源代码,然后进行源代码审计,发现漏洞。

漏洞危害

  • 泄露的源码可能包含以下敏感信息,导致进一步攻击:

  • 业务逻辑暴露:API 接口路径、权限验证逻辑、加密算法(如登录密码加解密方式);

  • 敏感数据泄露:管理员邮箱、内网 IP 地址、数据库连接配置(若开发阶段未删除测试配置);

  • 攻击面扩大:还原后的代码可辅助挖掘 XSS、越权访问等漏洞。

如何识别webpack

使用wapplyzer浏览器插件进行识别

F12,查看网页代码接口,webpack://目录,或者JS文件中,含有.map文件路径

微信图片_20250915220527

接口的爬取

webpack打包主要会导致接口和敏感信息的泄露,所以需要接口和敏感信息提取来快速挖洞
1, 可以直接使用工具快速进行API接口的提取,jjjjjjjjjs
2,可以使用FindSomething浏览器插件提取敏感信息和接口
3,手动分析源代码,编写脚本提取JS文件路径,然后使用脚本访问JS文件,进行接口提取。

接口如何提取

批量探测方法

  1. 获取HTML页面

  2. 解析JS文件链接

  3. 并发检测JS文件

  4. 特征检测

  5. 版本检测

  6. SourceMap检测

  7. 输出CSV/HTML文件

    image

    image

    image

    image

    image

    image

    image

SourceDetectorMap(插件)

SourceDetectorMap增强版插件能自动发现.map文件,之后你在浏览任何网页时,该插件将自动检测是否有.map文件。其会自动按网站分组显示源码文件,并可点击下载全部或部分源码文件。

下载地址:

  • 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 文件,反编译发现大量接口:

微信图片_20250915212956

微信图片_20250915220535

微信图片_20250915220543

审计 js 发现好几个接口未授权,但是没什么有价值东西,还是不能突破登录口,于是提指纹找相同系统,运气很好,找到一个测试站点:

  • http://xx.xx.xx.xx:7777/ 

使用超管账号登录查看 bp 流量:

微信图片_20250915220549

发现一个接口通过 token 返回了管理员的账号和密码:

  • /xx/xx/getInfoByToken?token=eyJxx.xx.xx

突发奇想将当前系统的接口以及 token 信息带到不同网站去尝试:

微信图片_20250915220556

结果也返回了当前系统的管理员信息,解密 md5 值

成功进入系统

通过webpack发现未授权+敏感信息泄露+任意用户密码重置案例

站点是webpack打包 app.js 还有路由的js没有登录就有大量js接口还有path路径泄露

以普通用户身份登录,所有的还活着的接口都能访问,很多管理员才能访问接口也能访问,并且进行增删改查等操作

大量敏感信息

根据上面翻js,找到下面这个页面,接口回显所有用过这个系统的用户的信息

微信图片_20250915220603

任意用户密码重置

在修改密码界面抓取提交的报文,修改成我们前面拿到的各种信息,对应起来id,userNum,cardNum可以实现所有用户的密码修改和信息修改

对应不起来会报错

重置其他用户密码并且登录成功

微信图片_20250915220608

参考文章:

  • 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

0x03 总结

Webpack 在进行打包时,如果不严格控制配置和文件清理,可能导致源码和敏感信息的泄露,成为渗透攻击的突破口。通过提取 JS 文件路径、分析接口暴露等手段,可以快速发现并利用这些漏洞。结合断点调试和自动化脚本提取接口,能进一步识别和利用系统中的漏洞。
© 版权声明
THE END
喜欢就支持一下吧
点赞13 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容