temu风控破解之_bee参数纯算破解思路

temu参数破解 _bee参数

本次逆向接口为:L2FwaS9waGFudG9tL3hnL3BmYi9hNA==

完整版博客可见:https://xsblog.site

csdn吞图片

前情提要

经常爬数据的同学都知道,电商一向是令人头疼的存在,而作为电商头部行业,风控更是强的一批。我们在获取数据的时候,发现如果请求头里面不带上某些特定的ck是获取不到数据的,下面是某个api的携带ck情况

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

里面很多参数都是网站所谓的风控参数,其中verifyAuthToken是验证码通过后的凭证,本次我们暂时不讨论这个值,_nano_fp 参数大家是不是很眼熟,做过anti-content参数逆向的同学也一定知道,这个参数也参与了这个值的计算,这些ck都是比较重要的ck,但是,要想获取商品的数据,_bee 才是问题的重点!

本文我们将讨论这个参数是如何生成的,并且在本地进行纯算计算。

参数定位

我们首先要知道这个ck是在什么地方给我们设置起来的,方法有很多,你也可以hook setCookie这个方法,也可以做其他很好的操作。

在这里,我们采用全局搜索方法,搜索这个参数在哪获取的:

temu定位.jpg

不搜不知道,这个结果居然是接口返回的,这个时候我们就要去看一看这个接口是怎么请求的了。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

通过查看数据包我们可以发现,这个接口需要我们传一些奇奇怪怪的值,一个巨长无比的data,一个sign,一个时间戳,这个时候我们通过追栈,查看到参数生成的位置。

temuhook1.jpg

很显然,是在这里发包的,可以很明显看到每个参数的生成。

sign值逆向

柿子先调软的捏,我们首先看这个短小的sign值,这里括号里面的操作明显就是做一些加法,把fe拼接一个参数然后凭借时间戳和data,做一个签名(“HJ6793TJDI86DLS9D”)。

现在我们需要知道的就是这个签名算法是什么。我们观察这个参数的长度,嗯,是40位,常见的40位的hash算法有什么呢,显然是sha1,在这里,我们猜测是不是标准算法,我们传入一个特定的值去计算,看他的结果和官方的结果是不是一样的:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

很明显,这个参数的值是一样的,好了,这就是一个标准版的sha1.

const crypto = require('crypto');

function sha1(input) {
    return crypto.createHash('sha1').update(input).digest('hex');
}

data参数破解

破解完sign值后,我们可以查看data是怎么生成的了。

我们在代码中可以看到,data这个值是他在用Ne.es这个方法,把字符串变成数组,我们可以选取一个查看一下:

后记

temu的风控是很厉害的,就算我们一套逻辑全部都对,可能也过不了他的风控,而且风控点经常会变,所以呀,这是一个长期对抗的过程~

### Temu API 接口概述 Temu 提供了一系列API接口来帮助开发者获取商品信息。主要的API接口名称包括在请求地址中的有`item_search`, `item_get`, 和 `item_search_shop`等[^1]。 ### 获取API密钥的方法 为了能够调用Temu的商品详情API,首先需要注册一个开发者账号并创建应用。这涉及到几个方面的工作: - **注册开发者账号**:访问开放平台官网完成注册成为开发者。 - **创建应用**:登录后,在开放平台的管理制台创建一个新的应用程序实例。 - **获取API密钥**:当成功创建应用之后,系统自动生成该应用对应的App Key和App Secret作为调用API接口时的身份验证凭证。 - **阅读文档**:仔细研读官方提供的API使用规则以及详细的API文档,理解各个接口的功能描述及其参数定义等内容[^2]。 ### 构建与发送HTTP请求 基于所获得的应用程序密钥和其他必要参数,可以按照以下方式构建并向指定URL发出HTTP GET/POST请求以查询特定条件下的产品列表或单个产品的详细资料: ```python import requests url = "https://api.temuchin.com/item_search" params = { 'app_key': 'your_app_key', 'timestamp': int(time.time()), 'sign_method': 'md5', 'format': 'json' } headers = {'Content-Type': 'application/x-www-form-urlencoded'} response = requests.get(url, headers=headers, params=params) if response.status_code == 200: data = response.json() else: print(f"Error occurred: {response.text}") ``` 这段代码展示了如何通过Python编程语言利用`requests`库向Temu服务器发起一次简单的GET请求,并处理可能遇到的不同状态码情况。 ### 解析响应数据 一旦API调用顺利完成,则可以从返回的结果集中抽取感兴趣的部分。例如,如果目标是从JSON格式的数据流里提取出所有符合条件的产品标题,那么可以根据实际接收到的内容结构编写相应的逻辑来进行解析操作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

dxxmsl

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值