woyaoxuexi 发表于 2024-1-21 15:08

某加解密网站的逆向实践

本帖最后由 woyaoxuexi 于 2024-1-21 15:23 编辑

访问地址

aHR0cHM6Ly93d3cuc29qc29uLmNvbS9lbmNyeXB0X21kNS5odG1s

逆向目标
获取其md5解密接口请求头`Sojsonhost` `Sojsondata`的加密实现,并通过postman请求成功返回。




逆向过程
打开控制台。映入眼帘的果然是匿名debugger,代码是加密压缩过的。


chrome source 直接开启本地替换。



那么,**vscode 启动**,文件打开后格式化。



1300行,还行。sojson.v4,对代码会做反调试,包括无限循环debugger,堆栈溢出。动不动风扇就启动了,我这18款的老年mbp身子骨遭罪了。
好好好,这么流氓是吧。把这个script标签内的代码抽离到本地一个js文件,再引用过来。接下来,就是跟这个js文件好好耍耍。

翻译官上线。把所有变量,按照自己的理解,批量替换成有含义的名称。数字从16进制恢复到10进制。字符串从ascii、unicode恢复正常显示。然后对整体代码做优化。就像给一位很离谱的同事代码做优化。

先声明一个大的数组coreArray,存储了转换后的业务属性。
然后是一个自执行匿名函数,这个函数将coreArray的前147位拼接到最后。并加了反格式化调试,引起页面崩溃。
好好好,这么流氓是吧。直接在页面控制台执行相关数组操作,获取结果替换coreArray,并注释或删掉此自执行匿名函数。

接下来,是一个函数。主要是对数组元素做格式化转换,并缓存转换结果。并加了反格式化调试,引起页面崩溃。
好好好,这么流氓是吧。注释掉```format.once```相关代码,即可。

接下来,是两个函数。没有实际业务功能,主要检测代码格式化,函数无限循环调用,堆栈溢出。
好好好,这么流氓是吧。注释掉```// _0x28f610();```即可。

接下来,是两个自执行函数,主要还是代码下毒,并初始化core的。
好好好,这么流氓是吧。注释掉```// _0x197c83('0');``即可。

接下来,是个if语句块,判断域名的,不是当前域名,就无限刷新页面。
好好好,这么流氓是吧。注释掉所有语句即可。

接下来,是个setInterval计时器,每4秒执行一次core函数。不知道干嘛,肯定不干好事。
好好好,这么流氓是吧。注释掉内部执行语句即可。

接下来,就是最重要的时刻了,使用layui框架的jquery监听两个页面按钮事件,是我们要找的。
好好好,这么流氓是吧。直接翻译过来。拿来吧你。


分析一下,so是jquery,sf是封装的jquery extend。那么en是啥呢。`Sojsonhost`也还未知。
好好好,这么流氓是吧。直接排查到在`sojson.core.2.0.js`。

chrome source 直接开启本地替换,再格式化。一番分析,通过ajax请求的启动器,定位到请求处,打断点,发起请求。可以看到某变量属性`au_hots`到值就是`Sojsonhost`。定位到此处

postman启动,导入curl,修改header参数,send,成功。

至此,已经可以舒服了。

但是,这个网站这么流氓,必须要把它内裤扒开。
`sojson.security.m.js`是其加密源码,一番操作后,转换为格式化后代码。分析发现,`SOSecurity`为其全局函数,`en`使用的rc4加密,key为`BAQADIw9BH0KeVWy3GCDSEvbyybst4644+D4GK3idt7z0tPXQlt5pBoOmF72W81fdChZHqFJhRR57SIo6NWvdrooeggo6N8SbE30XH9mxI0ZTihk+7hFXhTB76dsnYx3L3suKQGCAa3n2dMirPjwf1mpH5kk/YPU6hU9vbL7LpNS5Qe2MCQgBKQiBCDANG4AAUQABEQD3bISGqSCG0AMfGIM`的反转。

相关本地代码,提到了github list上了,方便各位读者观看。
地址:aHR0cHM6Ly9naXN0LmdpdGh1Yi5jb20vZGluZ2NhbmcvYmFiNjczZThjOTY4NTEwNmQ3NWRhZmYzYmQzNWRjNjA=

CloudPluie 发表于 2024-1-23 09:49

6666 大佬牛掰

xuezhicailiao 发表于 2024-1-23 13:06

感谢楼主{:1_893:}我很赞同!用心讨论,共获提升!

alongzhenggang 发表于 2024-1-22 13:16

Git500错误搞不了

woyaoxuexi 发表于 2024-1-22 13:57

alongzhenggang 发表于 2024-1-22 13:16
Git500错误搞不了
啊。git 500是你的问题还是我的问题。是指文章最后的github list地址吗,我访问正常,访问权限设置的也是public。

Yangzaipython 发表于 2024-1-22 17:13

感谢分享

刘大富 发表于 2024-1-22 19:14

感谢分享

逐雅斋 发表于 2024-1-22 21:42

看起来不错,增知道sojson.v5能否解密

woyaoxuexi 发表于 2024-1-23 09:36

逐雅斋 发表于 2024-1-22 21:42
看起来不错,增知道sojson.v5能否解密

理论上前端代码都可以解密吧

hayyot 发表于 2024-1-23 21:21

js逆向,学到了学到了
页: [1] 2
查看完整版本: 某加解密网站的逆向实践