当前位置:   article > 正文

逆向爬取实战分析:iBox数字交易平台PC端实战(源码开源)_wxa-qbase

wxa-qbase

大家好,我是菜头,一名知识区新人博主。

如果可以麻烦大家点赞支持,源码开源

URL:https://www.ibox.art/

1.页面数据分析

目前数据是iBox市场页面的藏品列表。

在这里插入图片描述

首先对整站的请求数据进行查看,发现除JS及css等资源文件加载外有疑似数据请求接口。部分接口中有请求及返回结果乱码。

在这里插入图片描述

2.逻辑梳理

通过对“/wxa-qbase/container_service”地址的堆栈信息跟踪发现乱码的请求数据是加密后的二进制数据。同时还有请求成功后的数据解密操作。

在这里插入图片描述

之后对于请求数据进行分析:该数据是由另一个请求页面的数据进行AES_CBC模式的加密数据。

b = new Uint8Array(s.stringToArrayBuffer(JSON.stringify({
   
	method: c.method || "GET",
	header: O,
	body: v,
	call_id: g
})))
var R = r(44)
 , N = R.compress(b);
var D = r(107);
var x = new Uint8Array(s.base64ToArrayBuffer(i.key))
, L = D.AES_CBC.encrypt(N, x, void 0, x);
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

继续向上进行追溯寻找原始加密数据是由jsoperatewxdata页面返回的token、timestamp、key等数据,以及包含目标列表数据的path路径。

在这里插入图片描述

拿到请求数据后继续向下追溯,对于请求后的数据进行解密。拿到二进制乱码还原后的数据data和encryptKey。

在这里插入图片描述

之后继续向下追溯找到加密数据的解密方法进行解密。

在这里插入图片描述

在这里插入图片描述

3.代码实现

获取token、timestamp、key等信息

def get_token():
    headers = {
   
        "Accept": "*/*",
        "Accept-Language": "zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6",
        "Connection": "keep-alive",
        "Content-Type": "application/json",
        "Origin": "https://www.ibox.art",
        "Referer": "https://www.ibox.art/",
        "Sec-Fetch-Dest": "empty",
        "Sec-Fetch-Mode": "cors",
        "Sec-Fetch-Site": "cross-site",
        "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36 Edg/106.0.1370.34",
        "sec-ch-ua": "\"Chromium\";v=\"106\", \"Microsoft Edge\";v=\"106\", \"Not;A=Brand\";v=\"99\"",
        "sec-ch-ua-mobile": "?0",
        "sec-ch-ua-platform": "\"Windows\""
    }
    url = "https://web-001.cloud.servicewechat.com/wxa-qbase/jsoperatewxdata"
    data = {
   
        "appid": "wxa2d0710b1323fd96",
        "data": {
   
            "qbase_api_name": "tcbapi_get_service_info",
            "qbase_req": "{\"client_random\":\"0.7545187489399339_1665231383256\",\"system\":\"\"}",
            "qbase_options": {
   
                "identityless": True,
                "resourceAppid": "wxa2d0710b1323fd96",
                "resourceEnv": "ibox-3gldlr1u1a8322d4",
                "config": {
   
                    "database": {
   
                        "realtime": {
   
                            "maxReconnect": 5,
                            "reconnectInterval": 5000,
                            "totalConnectionTimeout": None
                        }
                    }
                },
                "appid": "wxa2d0710b1323fd96",
                "env": "ibox-3gldlr1u1a8322d4"
            },
            "qbase_meta": {
   
                "session_id": "1665231383264",
                "sdk_version": "wx-web-sdk/WEBDOMAIN_1.0.0 (1655460325000)",
                "filter_user_info": False
            },
            "cli_req_id": "1665231383681_0.3534639762555629"
        }
    }
    data = json.dumps(data)
    response = requests.post(url, headers=headers, data=data)
    response = json.loads(response.content)
    # print(response)
    return json.loads(response["data"])
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59

请求数据拼接并通过JS文件进行加密,模拟request请求数据。

json_token = get_token()
i = {
   
    "url": f"https://web-001.cloud.servicewechat.com/wxa-qbase/container_service?token={
     json_token['token']}",
    "domain": "web-001.cloud.servicewechat.com",
    "token": json_token['token'],
    "http": "true",
    "key": json_token['key'],
    "timestamp": json_token['timestamp'],
    "vip": json_token['vip'],
    "expiresTs": json_token['timestamp'] + 1700000
}
c = {
   
    "path": "/nft-mall-web/v1.2/nft/product/getResellList?type=1&origin=0&sort=0&page=1&pageSize=50",
    "method": "GET",
    "header": {
   
        "X-WX-EXCLUDE-CREDENTIALS": "unionid, cloudbase-access-token, openid",
        "X-WX-REGION": "ap-beijing",
        "X-WX-GATEWAY-ID": "gw-1-1g2n1gd143d56b56",
        "HOST": "api-h5-tgw.ibox.art",
        "Accept-Language": "zh-CN",
        "IB-DEVICE-ID": "d3a83e1022d045b4a4a161119b7a1a45",
        "IB-TRANS-ID": "5b24695d201346228cc5cc7467f99a01",
        "x-cloudbase-phone": "",
        "IB-PLATFORM-TYPE": "web",
        "content-type": "application/json",
        "User-Agent": ""
    },
    "timeout": 30000,
    "dataType": "json",
    "context": {
   
        "tunnelTimeNoCSNetCost": 0,
        "apiStartTime": 1665205456606,
        "warmStartTime": 1665205455882
    },
    "stats": {
   
        "apiStartTime": 1665205456606,
        "tsBeforeCallContainerImpl": 1665205456607,
        "getServiceEndpoint": 0,
        "tsCallContainerImplStart": 1665205456607,
        "callid": "0.41962903683984454_1665205456607",
        "stringToBuffer": 0,
        "compress": 2,
        "loadAsmcrypto": 6,
        "encrypt": 22,
        "domain": "web-001.cloud.servicewechat.com",
        "requestBodyBytes": 640,
        "requestStartTs": 1665205456638
    },
    "responseType": "text"
}
js = execjs.compile(open("./xxxx/iBox.js", encoding="utf-8").read())
    container_data = js.call("getResponse", i, c)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58

模拟request请求并对返回结果进行二进制数据解密还原。

res = requests.post(url=container_data["url"], headers=temp_header, data=bytes(array_buffer_data))
# print(list(res.content))
print(res)

success_data = {
   
    'header': str(res.headers),
    'data': list(res.content),
    'key': json_token['key']
}
# print(success_data)
first_decrypt_data = js.call('first_decrypt', success_data)
print(first_decrypt_data)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
{
   'data': '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
  • 1
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/IT小白/article/detail/232003
推荐阅读
相关标签
  

闽ICP备14008679号