您的位置:首页 > 教育 > 锐评 > 如何做百度搜索推广_宝贝详情页制作模板_宁波网站优化_优化器

如何做百度搜索推广_宝贝详情页制作模板_宁波网站优化_优化器

2024/12/25 2:12:46 来源:https://blog.csdn.net/weixin_46625757/article/details/144506965  浏览:    关键词:如何做百度搜索推广_宝贝详情页制作模板_宁波网站优化_优化器
如何做百度搜索推广_宝贝详情页制作模板_宁波网站优化_优化器

逆向日期:2024.12.16

使用工具:Python,Node.js

本章知识:逆向分析搜款网的【skumap】参数,并实现解密

文章难度:低等(没难度)

文章全程已做去敏处理!!!  【需要做的可联系我】 

AES解密处理(直接解密即可)(crypto-js.js 标准算法):​​​​​​在线AES加解密工具

仅供学习!仅供学习!仅供学习!

今天来逆向分析skumap参数,给大家进行演示,仅供学习,文章全部已去敏,无需担心

1、打开某某网站(使用文章开头的AES在线工具解密):
aAzzvsCBCrHWjl1E4ABsmWPzDsy7ElFTGooTG7Kkem4=

2、打开网站后,随便打开一个商品。打开控制台,刷新当前页面,然后搜索【/apif/item/】,找到链接并打开,没错,就是【skumap】参数

3、我们全局搜索【skumap】,然后大致浏览一下,没成想我随便浏览一下看到了DES🤣,直接打断点,刷新页面

4、断住了,很清晰就可以看到他加密的方法,我们直接模拟测试一下,看一下他用的是不是标准算法。

5、模拟了一下,发现解密成功了,是标准的算法,直接看js模拟结果

6、我直接用python给大家演示,他的key和iv向量都是在同一个请求里,和【skumap】也是在一起的,只是要注意,他的key需要【item_detail_】拼接一下

7、如果大家要采集数据,需要注意一下,要登录网站然后去把网站里的cookie里的【vvic_token】提取出来,其他的cookie值都不需要,然后放到请求里,这样可以防止采集不到价格和其他信息。【vvic_token】有效期为3个月,不能高并发,不会封ip。

好了今天就到这里了 ,代码如下

【skumap解密.js】
// 安装 crypto 加解密包
// npm install crypto-js --save
// 对称加密算法 的结果将会是唯一性,不会变更
const CryptoJS = require('crypto-js')
const express = require('express');
const app = express();
app.use(express.json());
// 返回字符串格式的字典数据
function decryptByDES(skumap, key_, iv_) {// skumap 为密文数据// key 密钥// iv 向量// 密钥var key = CryptoJS.enc.Utf8.parse(key_)// 向量var iv = CryptoJS.enc.Utf8.parse(iv_)// 解密 DESreturn CryptoJS.DES.decrypt(skumap, key,{iv: iv,// mode模式 CBC ECB CFB OFB CTRmode: CryptoJS.mode.CBC,// padding模式  Pkcs7....padding: CryptoJS.pad.Pkcs7}).toString(CryptoJS.enc.Utf8);
}
app.post('/', (req, res) => {const {skumap, vid, iv} = req.body;decrypt_data = decryptByDES(skumap, vid, iv)console.log('【解密后的数据】:' + decrypt_data.substring(0, 400)+'....')res.status(200).json({code: 1, data: JSON.parse(decrypt_data)});
});app.listen(4000, () => {console.log('Node.js 服务监听端口 127.0.0.1:4000');
});

 【skumap解密请求.py】注意,代码经过base64去敏,不需要的可以自行整改。cookie请自行添加,不需要的可以去除

import requests
import json
import base64# base64 解密
def base64_decode(str):return base64.b64decode(str).decode('utf-8')# 这个是链接被base64加密了,此步骤只用于去敏,无其他作用
urlhost = base64_decode('d3d3LnZ2aWMuY29t')# 数据解密专用 采用本地js服务接口解密
def clickDecryption(skumap: str, vid: str, iv: str) -> dict:headers = {'Content-Type': 'application/json'}data = {'skumap': skumap,  # 密文数据'vid': vid,  # key'iv': iv  # iv向量}# 发起 POST 请求response = requests.post('http://127.0.0.1:4000/', headers=headers, data=json.dumps(data))# 状态码if response.status_code == 200:# 对方一定会返回json数据return response.json()return {'msg': 'skumapz值为空', 'code': -1}# 请求数据
def requests_vvic():headers = {"user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/121.0.0.0 Safari/537.36"}# 在网站里登录账号,然后在cookie里提取这个【vvic_token】,即可成功用已登录的账号进行模板获取带有价格的数据# 如果不加cookie,也可以获取数据,但数据信息不会完整,比如价格就不会返回给你,所以需要有登录的cookie,才能拿到价格等其他信息cookies = {'vvic_token': 'xxxxxx请填充自己的cookie'}url = f"https://{urlhost}/apif/item/66dea9bc3a4f5100084290ae/detail"params = {"lang": "cn"}response = requests.get(url, headers=headers, cookies=cookies, params=params).json()return response# 请求数据
response = requests_vvic()
# 提取出所有数据
data = response['data']
# key需要拼接一下
vid = 'item_detail_' + data['vid']
# 密钥直接提取
iv = data['iv']
# 密文直接提取
skumap = data['skumap']
print(f'key:{vid}')
print(f'iv:{iv}')
print(f'skumap:{skumap}')
print(f'解密后的数据:{clickDecryption(skumap, vid, iv)}')

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com