webpack逆向——AES

2025-01-13 10 0

分析

查看登陆包,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一个样

总结

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


4A评测 - 免责申明

本站提供的一切软件、教程和内容信息仅限用于学习和研究目的。

不得将上述内容用于商业或者非法用途,否则一切后果请用户自负。

本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑或手机中彻底删除上述内容。

如果您喜欢该程序,请支持正版,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。敬请谅解!

程序来源网络,不确保不包含木马病毒等危险内容,请在确保安全的情况下或使用虚拟机使用。

侵权违规投诉邮箱:4ablog168#gmail.com(#换成@)

相关文章

Windows远程桌面网关出现重大漏洞
信安常用术语汇总
python分享 | 写出自己的第一个exp
hackthebox vintage writeup
网络安全基础之windows常用DOS命令
Java反序列化绕WAF tricks及一个GUI工具

发布评论