查看原文
其他

利用SourceMap还原前端代码

刨洞技术交流 刨洞技术交流 2023-05-29

说明

现在越来越多网站使用前后端分离技术,利用Webpack技术将JS类拓展语言进行打包,当然很多都是配套使用,例如Vue(前端 Javascript框架)+Webpack技术



这种技术也在普及,并且转向常态化,对渗透测试人员来说极其不友好:

1. 增加了前端代码阅读的时间(可读性很差)
2. 由于原因1,间接造成了前端漏洞的审计困难性

但是也具备一定的好处:

1. 采用这种模式,后端接口将完全暴露在JS文件

2. 除此之外,如果生成了Source Map文件可以利用该文件还原网站原始前端代码

主流浏览器都自带解析Source Map文件功能(开发者工具-Sources【火狐下是调试器】)


展开可以看见具体文件和代码:



找个能访问的页面按Ctrl+U查看源代码,再随便打开一个js找到映射文件




通常我们要找到的SourceMap映射文件都在这些文件的最下面有个注释的地方



把这chunk-vendors.6b92c4bd.js.map拼接到当前url目录就能把这个Source Map文件下载下来了


工具介绍


目前大多数人使用比较多的是以下两个


  • restore-source-tree
https://www.npmjs.com/package/restore-source-tree
  • shuji
https://github.com/paazmaya/shuji

这2个项目各有利弊,但并不是今天介绍的主角,今天要介绍的是:


  • reverse-sourcemap
https://www.npmjs.com/package/reverse-sourcemap

虽然是几年前开发的项目,但对文件和目录的还原与其他两个比较更加优秀,文件和目录都能全部还原出来


  • restore-source-tree还原目录,但一些文件会出现还原不了的情况
  • shuji可以还原文件,但同名的文件会出现忽略且不保存的情况



安装 reverse-sourcemap


需要先安装好npm

npm install --global reverse-sourcemap


还原代码

还原命令:

reverse-sourcemap -v Root-5712cd11ab11386d4a3e.js.map -o output


最终生成的文件会存放在./output目录


成功获得源代码






参考连接:https://p1kaju.github.io/javascript/restore-source-map/https://cloud.tencent.com/developer/article/1981398https://gh0st.cn/archives/2020-01-08/2



关注公众号后台回复 0001 领取域渗透思维导图,0002 领取VMware 17永久激活码,0003 获取SGK地址,0004 获取在线ChatGPT地址,0005 获取 Windows10渗透集成环境


扫码加入交流群





往期推荐



国内知名黑客论坛t00ls遭遇15亿次CC攻击

SKRoot - Linux完美内核级隐藏ROOT,挑战全网root检测手段

从星链到ChatPGT,为什么我们总在误判美国科技与经济的发展?

疑似境外黑客组织对CSDN、吾爱破解、bilibili等网站发起DDoS攻击

Fofa新产品 - 绕CDN溯源真实IP!

在线版ChatGPT,无需注册,快如闪电!


您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存