wzws_cid和wzwschallenge生成方式剖析

欢迎观看本篇文章

你好! 本人公众号“编码天空”。

以下有几种方式,我都写过,本地文章讲述第三种才对得起标题
1.抽取js,用程序传参执行
2.根据抽取出的js改编成java|python|golang|php代码
3.看执行流程,知道算法原理,想用啥语言写就用啥语言写。
开发过程中推荐第一种,简单方便不影响进度。

原由

文书网前几天去掉了瑞数,换回了前几个月的反爬wzws_cid和wzwschallenge。有朋友想了解一下怎么生成的。于是乎本篇文章写出来了。文章末尾增加一个java版本的wzws_cid生成类。

利用工具FD获取原始js

1:清空cookie和session
2:fiddler监听请求
3:获取到原始的js
3:记录最终生成的wzwschallenge
在这里插入图片描述

拷贝到vscode或者hbulider

在这里插入图片描述
本文选用hubuilder,格式化一下如下:

上图是我的操作步骤,先把wzwschallenge的结果保存一下,和自己调式结果进行比对。再把Set-Cookie的wzws_cid以document.cookie=""的方式写入,这样本地调试就不会报错。

ps:为啥我想本地调试,你F12在线调试就知道了。浏览器崩溃+内存炸掉

开始调试(有可能和上面截图有差异,因为demo不一样)

1:盲下断点
在这里插入图片描述
2:一个个断点看
在这里插入图片描述
看__0x3fb5e这个数组,已经变了,打印出来会发现仅仅是顺序变了。
这个时候记着这个地方,注意两点(是否这是最终的顺序;每次请求拿回的js,这里打断点时永远这个样子)。假如这个每次都不变,那么可以写死并把修改顺序的地方删掉。
注意我的电脑CPU,目前占用61%,正在疯狂的占用。

3:找到可疑地方,console.log()让他打印出来
在这里插入图片描述这里我进_0x33f22a方法,F10一步步执行,看到了熟悉的值【fiddler中看到的wzwschallenge值,你看看是不是?】

4:接下来,你可以往回看,生成步骤/kbd>

生成wzwschallenge值得代码如下,咱们看看这几个都是啥
var _0x10ace8 = _0x532424[_0x56ae(‘0x37’, ‘a6w(’)](_0x412a72, _0xb14971[_0x56ae(‘0x38’, '*8t’));在这里插入图片描述
也就是说。_0x532424数组里面得lYfvS方法,执行时传入两个值
1.传入_0x412a72方法(将方法作为参数传值在JAVA中叫做啥来着)
2.一个字符串tostring之后得值。

5:找_0xb14971这个tostring之前时候咋生成的
只有他是计算出来的,所以先找他,另一个参数是个方法,先放着。

生成_0xb14971值得代码如下
var _0xb14971 = _0x532424_0x56ae(‘0x36’, ‘jo5I’);
也就还是和_0x532424有关。不过是数组里面得hwQpj方法,这个时候看看_0x532424数组里面放的hwQpj和lYfvS都是个啥玩意。
1.hwQpj是传入方法,就执行它
2.lYfvS是传入的方法和参数,并执行方法,参数加进去即可。

初步结论
_0x344cd4执行完能得到一个字符串
把生成的字符串作为参数传入_0x412a72方法中得到wzwschallenge

6:看_0x344cd4方法
在这里插入图片描述
看一下这个for循环用到的值,真恶心在这里插入图片描述ctrl+c看一下wzwsquestion和wzwsfactor在哪里出现过在这里插入图片描述
变量wzwsquestionwzwsfactor出来了,看一下执行流程:
for循环,以wzwsquestion长度为循环次数,取wzwsquestion每个字的charCodeAt值相加,乘以wzwsfactor后、加上数字111111得到的数字,然后加上前缀WZWS_CONFIRM_PREFIX_LABEL即可

6:看_0x412a72方法
在这里插入图片描述
太长了,真变态,这循环8次得到最终逻辑啊,执行逻辑71652034,一个个case走吧
第7声明:_0x2097d8=“ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=”
第一声明: _0x27d1f5, _0x4262d0, _0xc876d4
第六声明:_0x5526a7, _0x138cf5, _0x4093e6;
第五声明:_0xc876d4 = 传入字符串的长度;
第二声明:_0x4262d0 = 0;
第零声明:_0x27d1f5 = ‘’;
第三计算:// TODO 自己计算吧
第四声明:returtn _0x27d1f5;

根据js写好的java类

下载地址:https://download.csdn.net/download/ggl1438/11290418

猜你喜欢

转载自blog.csdn.net/ggl1438/article/details/103560459