freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

webpack逆向——AES
2025-01-09 12:04:49
所属地 广东省

分析

查看登陆包,username和password有加密

定位到加密函数入口,这里搜索name和pwd出现文件过多,我们搜索请求包的其他参数,比如uid

成功定位到发包的位置

这里u和l就是我们的用户名和密码加密过后的值,Object(m["c"])就是我们的加密函数,

我们跟入m["c"]查看,这个加密方式有点像AES,t就是我们的key,我们再跟入D方法查看

代码写的是AES,这里我们可以试一下在线AES加密和网站的加密是否一致

对比pwd字段123456,发现加密后的值是一样的

如何扣取

这是一个典型的webpack打包的代码,在加密函数所处的js文件头部有webpackJsonp的字样,而且js文件也是app和chunkxxxx这种形式

查看这里的m就是导出的模块

我们在扣取webpack的时候要扣我们需要的函数模块和加载器

往上查找找到m定义的地方,记得不能超出作用域范围,如你找到了其他函数的m,和当前的m没有关系

我们下一个断点,刷新页面,让他击中断点

这里的n("ed08"),n就是加载器,他加载了ed08模块,给我们返回了一堆模块,我们跟入进去,发现这个就是我们需要的加载器

全部扣

我们把a函数所在的js全部保存下来,这里是加载器代码,并把a函数导出到全局,后面就可以用window.abc去加载我们的模块

导入模块

接下来我们导入模块

全局搜索ed08,找到这个function,这里我们全扣,就把这个js保存下来

格式化这个js文件,把这个json对象扣取出来

去除webpack开头的代码,整个json格式的模块如下

回到我们的加载器,这里准备放入我们的模块,他的加载器格式是一个数组,但是我们知道,这里放数组或者json对象都可以的,那我们把数组替换成我们的json对象

下面我们就可以用window.abcd代替n去加载模块,我们发现报错了,跟进去看一下

加载96cf模块报错了,我们看一下我们的json对象有没有这个函数,发现没有。

我们在目标网站全局搜索这个模块在哪个js文件,然后把整个js都保存下来,把他加入我们的加载器里面去,和我们第一次加载模块的处理方式一样

格式化js,扣取模块

追加到加载器加载模块里面,记得用逗号隔开

再次运行发现还在报错

跟进去发现这次是"5c96"模块,我们继续导入

找到在这个模块,像上面一样导入即可,这里省略步骤

这里我们运行,发现没有报错,并且成功返回了所需的加密模块

我们按照他的调用方式来调用这个加密函数,看看我们扣下来的代码是否能加密成功

最后运行成功

这里的Object就是执行代码的函数和eval一个样

总结

全部扣取的方式可以少一些手动补依赖的步骤,比较快速,当然也可以一个一个的扣依赖,都是一样的。

# js逆向 # webpack
本文为 独立观点,未经允许不得转载,授权请联系FreeBuf客服小蜜蜂,微信:freebee2022
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
  • 0 文章数
  • 0 关注者
文章目录