js源码泄露

admin 2023年6月13日10:03:48评论95 views字数 2153阅读7分10秒阅读模式

免责声明

请勿利用文章内的相关技术从事非法测试,由于传播、利用此文所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,作者不为此承担任何责任。工具来自网络,安全性自测,如有侵权请联系删除。



0x01 漏洞简介

webpack是一个JavaScript应用程序的静态资源打包器(module bundler)。它会递归构建一个依赖关系图(dependency graph),其中包含应用程序需要的每个模块,然后将所有这些模块打包成一个或多个bundle。大部分Vue等项目应用会使用webpack进行打包,如果没有正确配置,就会导致项目源码泄露,可能泄露的各种信息如API、加密算法、管理员邮箱、内部功能等等。
0x02 漏洞检测

webpack项目源码在泄漏的情况下,可以在浏览器控制台中的Sources——> Page—> webpack://中查看源代码
js源码泄露

使用webpack打包应用程序会在网站js同目录下生成 js.map文件

    .map文件的作用:项目打包后,代码都是经过压缩加密的,如果运行时报错,输出的错误信息无法准确得知是哪里的代码报错。有了map就可以像未加密的代码一样,准确的输出是哪一行哪一列有错。

直接查看网站的js文件,可以在末尾处有js.map文件名

js源码泄露

直接在当前访问的js后面拼接.map即可访问下载
js源码泄露

通过以上两种方式可以判断目标网站存在webpack源码泄露问题。
0x03 漏洞利用

在某些情况下,不能直接在浏览器控制台中的Sources—> Page—> webpack://中查看到webpack项目源码,但是网站上存在js.map文件,我们可以通过一些工具将js.map中的内容进行还原webpack项目源码。
1. reverse-sourcemap

使用npm安装reverse-sourcemap

npm install --global reverse-sourcemap

检查是否安装

~/ reverse-sourcemap -hreverse-sourcemap - Reverse engineering JavaScript and CSS sources from sourcemapsUsage: reverse-sourcemap [options] <file|directory>
-h, --help Help and usage instructions -V, --version Version number -v, --verbose Verbose output, will print which file is currently being processed -o, --output-dir String Output directory - default: . -M, --match String Regular expression for matching and filtering files - default: .map$ -r, --recursive Recursively search matching files

将js.map文件下载到本地,使用reverse-sourcemap进行js.map文件还原操作

reverse-sourcemap --output-dir ./  main-7692d0319da0ace0bfc4.js.map

执行成功后生成的源码会放在当前目录下的webpack中

js源码泄露

接着就可以对项目源代码进行分析审计了

js源码泄露

2. SourceDetector

SourceDetector是一个谷歌浏览器插件,此插件可以自动的判断网站是否存在js.map文件,并且能够利用该插件直接下载到js.map的webpack项目源码

下载插件项目到本地

git clone https://github.com/LuckyZmj/SourceDetector-dist

打开谷歌浏览器扩展程序的开发者模式,加载已解压的扩展程序,选中插件项目中的dist目录即可安装插件。

js源码泄露

安装好插件以后,每次浏览网站时,该插件就会自动获取js.map文件

js源码泄露

点击插件中的链接地址即可直接下载到js.map还原后的项目源码

js源码泄露

0x04 漏洞修复

  • 在项目路径下修改config/index.js中build对象productionSourceMap: false;

  • 建议删除或禁止访问正式环境中的js.map文件;


福利视频

笔者自己录制的一套php视频教程(适合0基础的),感兴趣的童鞋可以看看,基础视频总共约200多集,目前已经录制完毕,后续还有更多视频出品

https://space.bilibili.com/177546377/channel/seriesdetail?sid=2949374

技术交流

技术交流请加笔者微信:richardo1o1 (暗号:growing)

js源码泄露

如果你是一个长期主义者,欢迎加入我的知识星球(优先查看这个链接,里面可能还有优惠券),我们一起往前走,每日都会更新,精细化运营,微信识别二维码付费即可加入,如不满意,72 小时内可在 App 内无条件自助退款

js源码泄露

往期回顾

2022年度精选文章

SSRF研究笔记

xss研究笔记

dom-xss精选文章

Nuclei权威指南-如何躺赚

漏洞赏金猎人系列-如何测试设置功能IV

漏洞赏金猎人系列-如何测试注册功能以及相关Tips

原文始发于微信公众号(迪哥讲事):js源码泄露

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年6月13日10:03:48
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   js源码泄露https://cn-sec.com/archives/1801504.html

发表评论

匿名网友 填写信息