爬虫逆向 - 头部信息逆向

背景:

本文只是为了学习逆向技术,与爬取数据无关, 所以文中没有数据爬取,只是叙述了JS逆向思路及步骤

 请勿对目标网站进行大规模爬取

网址: https://ggzyfw.fujian.gov.cn/business/list

 

开始 - 步骤

1、分析网站得知:

  1)获取数据是header 中 portal_sign 为加密的,首先对其进行解密

  2)使用获取 portal_sign 解密后的字符串请求数据

  3)对数据进行JS逆向解密

 

python 脚本

 1 # coding: utf-8
 2 
 3 import requests
 4 import time
 5 import execjs
 6 
 7 cookies = {
 8     'ASP.NET_SessionId': 'ifggj3yi000hoat4z1pj0sjn',
 9 }
10 
11 json_data = {
12     'pageNo': 200,
13     'pageSize': 20,
14     'total': 0,
15     'AREACODE': '',
16     'M_PROJECT_TYPE': '',
17     'KIND': 'GCJS',
18     'GGTYPE': '1',
19     'PROTYPE': '',
20     'timeType': '6',
21     'BeginTime': '2022-06-13 00:00:00',
22     'EndTime': '2022-12-13 23:59:59',
23     'createTime': [],
24     'ts': round(time.time() * 1000),
25 }
26 
27 portal_sign = execjs.compile(
28     open("./头部信息逆向.js", "r", encoding="utf-8").read()).call('d', json_data)
29 
30 headers = {
31     'Accept': 'application/json, text/plain, */*',
32     'Accept-Language': 'zh-CN,zh;q=0.9,en-GB;q=0.8,en-US;q=0.7,en;q=0.6',
33     'Cache-Control': 'no-cache',
34     'Connection': 'keep-alive',
35     'Content-Type': 'application/json;charset=UTF-8',
36     # 'Cookie': 'ASP.NET_SessionId=ifggj3yi000hoat4z1pj0sjn',
37     'Origin': 'https://ggzyfw.fujian.gov.cn',
38     'Pragma': 'no-cache',
39     'Referer': 'https://ggzyfw.fujian.gov.cn/business/list/',
40     'Sec-Fetch-Dest': 'empty',
41     'Sec-Fetch-Mode': 'cors',
42     'Sec-Fetch-Site': 'same-origin',
43     'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.0.0 Safari/537.36',
44     'portal-sign': portal_sign,
45     'sec-ch-ua': '"Not?A_Brand";v="8", "Chromium";v="108", "Google Chrome";v="108"',
46     'sec-ch-ua-mobile': '?0',
47     'sec-ch-ua-platform': '"Windows"',
48 }
49 
50 response = requests.post(
51     'https://ggzyfw.fujian.gov.cn/FwPortalApi/Trade/TradeInfo',
52     cookies=cookies,
53     headers=headers,
54     json=json_data,
55 ).json()
56 
57 # 请求方式
58 # dome1
59 # data = execjs.compile(
60 #     open("./数据逆向.js", "r", encoding="utf-8").read()).call('b', response['Data'])
61 # print(data)
62 
63 # dome2
64 # 实例化node对象
65 node = execjs.get()
66 # js 源码文件编译
67 ctx = node.compile(open("./数据逆向.js", "r", encoding="utf-8").read())
68 # 执行js函数
69 resp = ctx.eval('Aa.b("{}", "{}")'.format(response['Data'], 123))
70 print(resp)

 

头部信息 portal_sign 逆向 JS

const crypto = require('crypto');

params = {
    "ts": (new Date()).getTime(),
    "pageNo": 4,
    "pageSize": 20,
    "total": 6346,
    "AREACODE": "",
    "M_PROJECT_TYPE": "",
    "KIND": "GCJS",
    "GGTYPE": "1",
    "PROTYPE": "",
    "timeType": "6",
    "BeginTime": "2022-06-13 00:00:00",
    "EndTime": "2022-12-13 23:59:59",
    "createTime": []
}

function Md5Encrypto(text) {
    return crypto.createHash('md5').update(text).digest('hex');
}

function u(t, e) {
    return t.toString().toUpperCase() > e.toString().toUpperCase() ? 1 : t.toString().toUpperCase() == e.toString().toUpperCase() ? 0 : -1
}

function l(t) {
    for (var e = Object.keys(t).sort(u), n = "", a = 0; a < e.length; a++)
        if (void 0 !== t[e[a]])
            if (t[e[a]] && t[e[a]] instanceof Object || t[e[a]] instanceof Array) {
                var i = JSON.stringify(t[e[a]]);
                n += e[a] + i
            } else
                n += e[a] + t[e[a]];
    return n
}

function d(t) {
    for (var e in t)
        "" !== t[e] && void 0 !== t[e] || delete t[e];
    var n = "3637CB36B2E54A72A7002978D0506CDF" + l(t);
    return Md5Encrypto(n).toLocaleLowerCase()
}

console.log(d(params))
View Code

 

数据逆向JS

const CryptoJS = require('crypto-js')

/*
原js 加密函数
function b(t) {
    var e = h.a.enc.Utf8.parse(r["c"])
      , n = h.a.enc.Utf8.parse(r["b"])
      , a = h.a.AES.decrypt(t, e, {
        iv: n,
        mode: h.a.mode.CBC,
        padding: h.a.pad.Pkcs7
    });
    return a.toString(h.a.enc.Utf8)
}

破解:
    0、确认参数 t 是什么值
    1、确认h.a 是什么函数 --> 加密算法库crypto-js
    2、查看 r["c"]、r["b"] 是什么值
*/

var Aa = {
    b: function (t, dd) {
        var e = CryptoJS.enc.Utf8.parse('BE45D593014E4A4EB4449737660876CE')
            , n = CryptoJS.enc.Utf8.parse('A8909931867B0425')
            , a = CryptoJS.AES.decrypt(t, e, {
                iv: n,
                mode: CryptoJS.mode.CBC,
                padding: CryptoJS.pad.Pkcs7
            });
        console.log(dd)
        return a.toString(CryptoJS.enc.Utf8)
    }
}

function b(t) {
    var e = CryptoJS.enc.Utf8.parse('BE45D593014E4A4EB4449737660876CE')
        , n = CryptoJS.enc.Utf8.parse('A8909931867B0425')
        , a = CryptoJS.AES.decrypt(t, e, {
            iv: n,
            mode: CryptoJS.mode.CBC,
            padding: CryptoJS.pad.Pkcs7
        });
    return a.toString(CryptoJS.enc.Utf8)
}

data = "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"
console.log(b(data))
View Code

 

posted @ 2022-12-28 11:21  萤huo虫  阅读(699)  评论(0编辑  收藏  举报