码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • [ 基础漏洞篇 ] webpack 前端源码泄露详解


      🍬 博主介绍  

    • 👨‍🎓 博主介绍:大家好,我是 _PowerShell ,很高兴认识大家~
    • ✨主攻领域:【渗透领域】【数据通信】 【通讯安全】 【web安全】【面试分析】
    • 🎉点赞➕评论➕收藏 == 养成习惯(一键三连)😋
    • 🎉欢迎关注💗一起学习👍一起讨论⭐️一起进步📝文末有彩蛋
    • 🙏作者水平有限,欢迎各位大佬指点,相互学习进步!

    目录

      🍬 博主介绍  

    一、webpack 介绍

    1. 什么是 webpack ?

    2. webpack 的主要功能是什么?

    3. webpack 使用不当能造成什么样的危害?

    二、webpack 前端源码泄露挖掘

    1. 手工挖掘

    1. 查找使用webpack的网页

    2. 下载源码

    3. source map文件还原

    2. 利用插件进行挖掘

    三、webpack 前端源码泄露漏洞修复建议

    一、webpack 介绍

    1. 什么是 webpack ?

    webpack 是代码编译工具,有入口、出口、loader 和插件。webpack 是一个用于现代javascript应用程序的静态模块打包工具。当 webpack 处理应用程序时,它会在内部构建一个依赖图(dependency graph),此依赖图对应映射到项目所需的每个模块,并生成一个或多个 bundle。

    简单来说:webpack就是一个打包器(bundler),它能将多个js、css、json等文件打包成一个文件。这样可以使复杂的各种加载文件集合为整合为单一的集合,让代码更加模块化便于编程使用和浏览器加载。

    大部分Vue应用会使用webpack进行打包,如果没有正确配置,就会导致Vue源码泄露,可能泄露的各种信息如API、加密算法、管理员邮箱、内部功能等等。

    2. webpack 的主要功能是什么?

    其天生就代码分割、模块化,webpack2.0中加入tree shaking,用来提取公共代码,去掉死亡代码。

    3. webpack 使用不当能造成什么样的危害?

    如果可以获得程序的js代码,那么就可以针对源代码对代码中各种信息如隐蔽接口、API、加密算法、管理员邮箱、内部功能等等,或者接口API可以尝试未授权漏洞,拼接接口越权漏洞,查找源代码中关键字去GitHub查找程序源码进行代码审计。

    二、webpack 前端源码泄露挖掘

    1. 手工挖掘

    1. 查找使用webpack的网页

    找到含.map的js页面
    进入到一个*.js的页面查看源码:

    2. 下载源码

    后缀加上.map访问https://xxx.js.map

    会直接下载 js.map

    3. source map文件还原

    采用 reverse-sourcemap 这个工具,可以吧文件和目录全部还原出来,很好用的小工具。

    全局安装:

    npm install --global reverse-sourcemap

    使用方式:

     -o:还原后的目录

    -v:需要还原的文件

    reverse-sourcemap -o aaa -v app.9fbea7c7.js.map

    2. 利用插件进行挖掘

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

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

    提示:
    如果此命令下载失败,可直接访问链接下载.zip文件:

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

    然后解压,谷歌浏览器添加扩展程序(注意是添加文件中的dist文件夹)

    三、webpack 前端源码泄露漏洞修复建议

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

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

  • 相关阅读:
    支持十亿级密态数据、低代码,蚂蚁集团发布隐语开放平台
    润石科技(RUNIC)汽车电子应用方案和物料选型
    【多线程】深入理解,单例模式:饿汉模式和懒汉模式(附常考面试题)
    面向对象分析?如何进行面向对象分析-获取需求?面向对象分析模型由三个独立模型组成:功能模型,对象模型,动态模型
    #include “ascii_font.c“ 引入源文件,Keil5为什么没有提示重复定义错误,详解!!!
    好消息!终于解决了!Coze工作流错误中断问题终于得到解决!
    (三)推断的逼近方法-通过加权重采样的贝叶斯定理
    嵌入式 Linux 入门 环境篇(四、必备开发工具安装)
    postgis函数学习
    使用 System.exit() 来优雅地终止 Spring Boot 项目
  • 原文地址:https://blog.csdn.net/qq_51577576/article/details/125664651
  • 最新文章
  • 【FHE】我们如何实现同态加密推理(八):SiLU 的密文化——两条路径,和一个 8 字节的开关
    SQLcl 中 c/old/new 替换变量为何失效?先定位再替换
    不让模型写作文,直接从它脑子里读答案:Jev 决策在 .NET 的两条路线
    Halo插件:支持GitHub的图床附件策略
    电视投屏界的“一股清流”!SimpleTVCast 6.0.0-beta 抢先体验:无需TV端App,界面大换血!✨
    华三VXLAN集中式网关实战指南:Spine多活网关 + 双活接入(M-LAG)
    软件更好写之后口碑会更重要
    大 O、大 Omega、大 Theta 的区别,O(n) 复杂度是什么意思
    Java标签跳转:一个鲜为人知但却很实用的小技巧
    多智能体系统论文速读
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号