练习别搞,webpack的实战练习。别干违法违规的事情,所有行为与本公众号无关,只做一个学习分享,就一起进步进步,有别的想法的别看文章。
01逆向参数
网址:
aHR0cDovL3d3dy5rdXdvLmNuLw==
接口:
aHR0cDovL3d3dy5rdXdvLmNuL2FwaS93d3cvbG9naW4vbG9naW5CeUt3
逆向参数:
- reqId
02实战流程
01抓包找接口
发现要逆的参数reqId。
02下断
重新登录调试。
XHR下断没有立马找到reqId,那我们就搜索下断。
直接搜到了,看一下代码。
分析一下,t.data.reqId = r,那我们要找r,那就要去上文里找r。
这不就是webpack的特点嘛,一个同名方法通过不同的参数获取不同函数方法。
直接将断点打过来调试,让他作用域到这里,去找到他的加载器。
然后我们就能发现这个不就是webpack加载器的代码嘛,那就是主函数。,咱二话不说全部先抠下来。
扣下来之后发现传入的数组是空的,那肯定是多文件打包了。
我在刚打开的时候就看到标志性文件头。
这个window.webpackJsonp还有.push追加到缓存里可太经典了,我们有三种办法可以解决他呢。(不知道的可以看下之前的:JS逆向之webpack基础)
直接全抠吧,省的动脑子。
结果是这样,那我们就要调一下代码让它跑起来。
首先肯定是要window的,然后定义一个全局变量接收加载器。
然后把最后一行init初始化删了,把加载器变为全局变量接收。
看看原调用。
那我们script(10)玩玩。
发现运行报错。
改改,直接删,所有删的方案和天翼云的那个一样,代码都差不多。
不多多了一点环境问题,删的东西有点多,反正报错看看是否判断||或者,啥的全删了就完事了。
补个document环境少处理很多事,最终该删的删完后,就能正常运行了,不过在我这报了warning。
我们再细看一下代码,r在下面c()()重新定义过。
先获取l = n(109)
然后再取c = n.n(l),再拿r=c()()执行,发现运行出结果了。
03总结
看到webpack就要想着找他的特征一,找到特征之后直接,找主文件,找主文件之后,看他是不是多文件,是多文件就找他的子文件,全部抠下来就完事了。
03完整代码
源码四万行太长,交流群自取,交流群在公众号:关于我的->交流群。
喜欢就点个关注一起进步吧
此文章仅做学习之用,请勿做违法违纪之事。
声明:文中观点不代表本站立场。本文传送门:https://eyangzhen.com/218411.html