某投诉js逆向 【一鱼多吃web逆向】
故事场景:某大型投诉网站关键词搜索为例
参数定位
1、手把手找接口

有点像了,有内味了,什么味?根据我多年的爬虫经验,目测unicode编码
果不其然!那就继续
2、定位加密参数
手把手教学,看图说话

进入searchResult.js文件后继续输入signature进行二次搜索

首页加载完之后,进行多次翻页,分析其中变化的参数
经过分析signature由以下组成
"ts": str(int(time.time() * 1000)),
"rs": "alskibpdtxO6LbtB",
"keywords": keyword,
"page_size": "10",
"page": str(page), # 翻页页数
还不够呢,别急!!
因有sort方法,该方法经过排序组合得来,然后再进行sha256加密

在搜索t的过程中,上下有sha256因为尝试一番,结果就模拟出来了
模拟还原

【js逆向 代码】即拿即用 :
# -*- coding: utf-8 -*-
import requests, hashlib,time
def getDataSha256(data):
"""
数据SHA256 加密
:param data:
:return:
"""
return hashlib.sha256(data.encode('utf-8')).hexdigest()
url = "https://tousu.sina.com.cn/api/index/s"
keyword = 'iphone14'
for page in range(1, 5):
params = {
"ts": str(int(time.time() * 1000)),
"rs": "alskibpdtxO6LbtB",
"keywords": keyword,
"page_size": "10",
"page": str(page), # 翻页页数
}
# signature = "4b7f8f362992583b432e275f96d7a76ec72496fce360aa45042aaea6015e0585"
key_list = [params["ts"], params["rs"], "$d6eb7ff91ee257475%", params["keywords"], params["page_size"],
params["page"]]
key_list.sort()
print("加密参数:", key_list)
signature = getDataSha256("".join(key_list))
params["signature"] = signature
print("加密结果:", signature)
resp = requests.get(url=url, params=params)
jsonData = resp.json()
result = jsonData.get("result", {})
data = result.get("data", {})
lists = data.get("lists", [])
for item in lists:
print(item)
预告:下期为大家分享该投诉app逆向过程
喜欢的点关注、再看,thx
版权声明:本文为weixin_38640052原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。