sojson是什么?
其实可以认为是一种把JavaScript代码经过混淆的一种方式。 它的大概样子就如下图: 就是 看起来没有一个变量是认识的哈。
这次要玩的网站链接:https://www.superbed.cn/ 当把图片或者其他东西拖到上传标志的地方就会触发一个接口将数据上传。 步骤:
- 先查看需要逆向的参数,这里sign一搜一堆。今天讲另一种找加密函数的方式,我们不通过关键字去找了。通过这个接口旁边显示的initiator这个地方找也就是堆栈,我也不知道这么解释对不对?
- 点击第一个文件进入到第一个JavaScript中,其实也就是相当于JavaScript执行的最后一个,格式化后会自动定位到发送的位置,就在那个位置打个断点再触发一下这个上传机制。
既然选择了跟堆栈,那就看看旁边的堆栈。 这里可以看到有个值(_0x5f55c2)很像sign参数,可以针对这个参数看看是不是就是需要的sign值。 - 搜一下 _0x5f55c2 参数,发现就两个地方有而且赋值的就一个地方存在。把这句先去控制台打印一下并抠出来放到自己的js文件里可以看出这里就是 _0x5f55c2 参数生成的地方,但是扣下来看发现似乎也看不懂,那就一个个参数看看。
原来扣出来的
var _0x3817e4 = _0x1c966f[_0x480d('156', 'jrzm')](md5, _0x1c966f[_0x480d('157', 'hU@s')](_0x1c966f['AccoM'](_0x3de580, '_'), _0x285663['ts']) + '_' + _0xcd16fd);
经过一个个值在控制台输出之后得到的js
var _0x3817e4 = md5(_0x3de580+'_'+_0x285663['ts']+'_'+ _0xcd16fd)
_0x3de580 = undefined _0x285663[‘ts’] 是时间戳 _0xcd16fd是一个未知变量,对此值进行全局查找 知道_0xcd16fd是一个随机变量,把每个变量复制到控制台输出,并生成我们看得懂的函数。 看这个代码是你会发现nonce这个值就是那个随机数。所以说加密参数三个值都破解了。
- sojson看起来确实头痛,但是细心点还是可以搞定的。
我提几个问题
- 大家有没有逆向过百度翻译啊?试过长篇文章?为什么逆向翻译结果和你复制过去百度翻译的结果是不同的?
- scrapy创建多个spider文件要是想每个spider配置不同的响应时间等该怎样设置呢?
- 某头条的逆向为什么自己逆向出来的cookies这么短呢?
- 遇到http2.0怎么办?
- 需要加密入口的方法还有哪些?
- 混淆处理sojson还有哪些?
如果想知道可以关注我并且私聊我,给你找答案
|