temu参数破解 _bee参数
本次逆向接口为:L2FwaS9waGFudG9tL3hnL3BmYi9hNA==
完整版博客可见:https://xsblog.site
csdn吞图片
前情提要
经常爬数据的同学都知道,电商一向是令人头疼的存在,而作为电商头部行业,风控更是强的一批。我们在获取数据的时候,发现如果请求头里面不带上某些特定的ck是获取不到数据的,下面是某个api的携带ck情况
里面很多参数都是网站所谓的风控参数,其中verifyAuthToken是验证码通过后的凭证,本次我们暂时不讨论这个值,**_nano_fp** 参数大家是不是很眼熟,做过anti-content参数逆向的同学也一定知道,这个参数也参与了这个值的计算,这些ck都是比较重要的ck,但是,要想获取商品的数据,**_bee** 才是问题的重点!
本文我们将讨论这个参数是如何生成的,并且在本地进行纯算计算。
参数定位
我们首先要知道这个ck是在什么地方给我们设置起来的,方法有很多,你也可以hook setCookie这个方法,也可以做其他很好的操作。
在这里,我们采用全局搜索方法,搜索这个参数在哪获取的:
不搜不知道,这个结果居然是接口返回的,这个时候我们就要去看一看这个接口是怎么请求的了。
通过查看数据包我们可以发现,这个接口需要我们传一些奇奇怪怪的值,一个巨长无比的data,一个sign,一个时间戳,这个时候我们通过追栈,查看到参数生成的位置。
很显然,是在这里发包的,可以很明显看到每个参数的生成。
sign值逆向
柿子先调软的捏,我们首先看这个短小的sign值,这里括号里面的操作明显就是做一些加法,把fe拼接一个参数然后凭借时间戳和data,做一个签名(“HJ6793TJDI86DLS9D”)。
现在我们需要知道的就是这个签名算法是什么。我们观察这个参数的长度,嗯,是40位,常见的40位的hash算法有什么呢,显然是sha1,在这里,我们猜测是不是标准算法,我们传入一个特定的值去计算,看他的结果和官方的结果是不是一样的:
很明显,这个参数的值是一样的,好了,这就是一个标准版的sha1.
const crypto =require('crypto');functionsha1(input){return crypto.createHash('sha1').update(input).digest('hex');}
data参数破解
破解完sign值后,我们可以查看data是怎么生成的了。
我们在代码中可以看到,data这个值是他在用Ne.es这个方法,把字符串变成数组,我们可以选取一个查看一下:
后记
temu的风控是很厉害的,就算我们一套逻辑全部都对,可能也过不了他的风控,而且风控点经常会变,所以呀,这是一个长期对抗的过程~
版权归原作者 dxxmsl 所有, 如有侵权,请联系我们删除。