分享缩略图

分享到:
链接已复制
首页> 新闻中心>

Web逆向WebPack结构分析

2025-06-24 11:56:52

来源:新华网

字体:

webPack加载器分析JS逆向。

一般逆向思维。

案例1: 一般web逆向登录某个网站,登录数据,如账号密码,将从前端加密到后端,所以前端会有加密代码。需要找到这个加密代码段来扣除,加密,方便爬虫或采集工具自动登录或其他操作,前端加密代码的一个难点是处理webPack包装结构的代码。

处理webPack结构。

webpack的名字c;事实上,它是一种包装机制,包装多个js文件(也可以是其他类型的文件,比如.png)统一打包js文件,当然,如果是webpack多打包机制,多个js文件的最终目的必须是压缩代码,提高代码执行效率。

在这里插入图片描述

webpack完全采用闭包机制(也就是说,通过作用域)避免几个需要压缩的文件中的函数有重名的现象(一人一个功能域可以避免函数重名的问题),也就是:

var jss = [ { 对象1}#xff00c;{ 对象2}#xff00c;{ 对象3} ]。

对象1也可以是函数形式:
{ getInfo:function(){ }。
这样,希望将不同文件的重名函数调用为:
jss[0].func1()。
jss[1].func1()。

这不仅解决了函数名称重名问题(即允许重名),您可以再次调用您想要调用的函数。
但是现在还有一个新的问题,就是有一些私人方法我不想被外界调用,也就是说,访问权限问题󿀌就像C+一样;+共有函数和私有函数是一样的。
webpack的解决方案是外部访问的所有共同方法都需要导出,即:

export。:function。(){ 。console。.。log。(。'模块2')。}。,]。)。n。(。0)。

实践案例。

受害者网站:https://m.ctyun.cn/wap/main/auth/login。
首先,通过跟栈法跟踪 password 加密的关键位置。
在这里插入图片描述
可以看到调用代码󿀌其中一些干扰代码,提取后如下:

encodeURI。(。b。[。"c"]。(。"123456789",b。[。"f"]。(。"[email protected]")。)。)。

ok,找到调用函数,需要下一步,
向上找b的生成位置。
webpack包装了类似o(7f6d)的形式。
在这里插入图片描述

如果不确定,将文件翻到顶部,发现它仍然是一种webpack多包装形式,如下图所示。

在这里插入图片描述

在这里插入图片描述
可见这种结构是webpack包装的。

ok,然后我们确定是webpack结构,然后我们需要扣除webPack加载函数。
下一步是刷新网页󿀌控制台输入o,跟进其内部。
在这里插入图片描述
这里就知道js是主加载器。

ok.这样,我们就可以得到webpack加载器的代码!!!

将webpack的主文件全部复制到新的js文件中(请注意,这是全部。!!几万行代码,如果是高手可以直接复制要用的代码,那就当我是p话吧。)

输入。webpackJsonp。获取所有子文件。

在这里插入图片描述
要调用webpack中的函数,需要导出内部方法。
在这里插入图片描述
将u函数导出给hanshu。

windows。.。hanshu。 =u。;

外部调用。

o。 =window。.。hanshu。;b。 =o。(。"7f6d")。;encodeURI。(。b。[。"c"]。(。"123456789",b。[。"f"]。(。"[email protected]")。)。)。;

这就成了!!。这种加密是有时间戳进加密操作的,所以 #xff00不能实时比较c;结果会有所不同,所以不要放对比截图。
在这里插入图片描述
下一篇文章将讨论实际操作中的一些问题;!!
喜欢逆向的学生可以关注,免费逆向工具和文章,谢谢支持。

在这里插入图片描述

【责任编辑:新华网】
返回顶部