某投诉js逆向 【一鱼多吃web逆向】


某投诉js逆向 【一鱼多吃web逆向】
故事场景:某大型投诉网站关键词搜索为例

参数定位

1、手把手找接口

Alt

有点像了,有内味了,什么味?根据我多年的爬虫经验,目测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版权协议,转载请附上原文出处链接和本声明。