我是靠谱客的博主 英勇万宝路,最近开发中收集的这篇文章主要介绍JS逆向之企名科技1. 初步分析2. 尝试定位加密js3. 编写python程序尝试获取数据这一路走来 孤独而坚定,自信而坦荡,少年,加油啊!,觉得挺不错的,现在分享给大家,希望可以做个参考。
概述
文章目录
- 1. 初步分析
- 2. 尝试定位加密js
- 3. 编写python程序尝试获取数据
- 这一路走来 孤独而坚定,自信而坦荡,少年,加油啊!
1. 初步分析
目标网址:企名科技
抓包分析,发现是post请求
post携带的参数并没有进行js加密,可以写代码测试一下;
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import requests
headers = {
'Connection': 'keep-alive',
'sec-ch-ua': '" Not;A Brand";v="99", "Google Chrome";v="91", "Chromium";v="91"',
'Accept': 'application/json, text/plain, */*',
'sec-ch-ua-mobile': '?0',
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4469.4 Safari/537.36',
'Content-Type': 'application/x-www-form-urlencoded',
'Origin': 'https://www.qimingpian.cn',
'Sec-Fetch-Site': 'cross-site',
'Sec-Fetch-Mode': 'cors',
'Sec-Fetch-Dest': 'empty',
'Accept-Language': 'zh-CN,zh;q=0.9',
}
data = {
'time_interval': '',
'tag': '',
'tag_type': '',
'province': '',
'lunci': '',
'page': '1',
'num': '20',
'unionid': ''
}
response = requests.post('https://vipapi.qimingpian.com/DataList/productListVip', headers=headers, data=data)
print(response.text)
响应内容是这样的:
{"status":0,"message":"success","encrypt_data":"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"}
发现网页数据encrypt_data被加密了,接下来开始尝试解密
2. 尝试定位加密js
全局搜索encrypt_data,可以定位到如下所示:
打上断点开始调试,像这种加密的一般都会有一个json.parse的函数
二话不说先搞下来放入一个新建的js文件中:
function o(t) {
return JSON.parse(s("5e5062e82f15fe4ca9d24bc5", a.a.decode(t), 0, 0, "012345677890123", 1))
}
a.a.decode直接改成decode:
function o(t) {
return JSON.parse(s("5e5062e82f15fe4ca9d24bc5", decode(t), 0, 0, "012345677890123", 1))
}
再接着分析,parse函数里只有两个参数需要我们补充,即一个s和一个decode函数,接下来定位到s函数,拿下来:
function s(t, e, i, n, a, s) {
var o, r, c, l, u, d, h, p, f, v, m, g, b, y, _ = new Array(16843776,0,65536,16843780,16842756,66564,4,65536,1024,16843776,16843780,1024,16778244,16842756,16777216,4,1028,16778240,16778240,66560,66560,16842752,16842752,16778244,65540,16777220,16777220,65540,0,1028,66564,16777216,65536,16843780,4,16842752,16843776,16777216,16777216,1024,16842756,65536,66560,16777220,1024,4,16778244,66564,16843780,65540,16842752,16778244,16777220,1028,66564,16843776,1028,16778240,16778240,0,65540,66560,0,16842756), C = new Array(-2146402272,-2147450880,32768,1081376,1048576,32,-2146435040,-2147450848,-2147483616,-2146402272,-2146402304,-2147483648,-2147450880,1048576,32,-2146435040,1081344,1048608,-2147450848,0,-2147483648,32768,1081376,-2146435072,1048608,-2147483616,0,1081344,32800,-2146402304,-2146435072,32800,0,1081376,-2146435040,1048576,-2147450848,-2146435072,-2146402304,32768,-2146435072,-2147450880,32,-2146402272,1081376,32,32768,-2147483648,32800,-2146402304,1048576,-2147483616,1048608,-2147450848,-2147483616,1048608,1081344,0,-2147450880,32800,-2147483648,-2146435040,-2146402272,1081344), w = new Array(520,134349312,0,134348808,134218240,0,131592,134218240,131080,134217736,134217736,131072,134349320,131080,134348800,520,134217728,8,134349312,512,131584,134348800,134348808,131592,134218248,131584,131072,134218248,8,134349320,512,134217728,134349312,134217728,131080,520,131072,134349312,134218240,0,512,131080,134349320,134218240,134217736,512,0,134348808,134218248,131072,134217728,134349320,8,131592,131584,134217736,134348800,134218248,520,134348800,131592,8,134348808,131584), x = new Array(8396801,8321,8321,128,8396928,8388737,8388609,8193,0,8396800,8396800,8396929,129,0,8388736,8388609,1,8192,8388608,8396801,128,8388608,8193,8320,8388737,1,8320,8388736,8192,8396928,8396929,129,8388736,8388609,8396800,8396929,129,0,0,8396800,8320,8388736,8388737,1,8396801,8321,8321,128,8396929,129,1,8192,8388609,8193,8396928,8388737,8193,8320,8388608,8396801,128,8388608,8192,8396928), k = new Array(256,34078976,34078720,1107296512,524288,256,1073741824,34078720,1074266368,524288,33554688,1074266368,1107296512,1107820544,524544,1073741824,33554432,1074266112,1074266112,0,1073742080,1107820800,1107820800,33554688,1107820544,1073742080,0,1107296256,34078976,33554432,1107296256,524544,524288,1107296512,256,33554432,1073741824,34078720,1107296512,1074266368,33554688,1073741824,1107820544,34078976,1074266368,256,33554432,1107820544,1107820800,524544,1107296256,1107820800,34078720,0,1074266112,1107296256,524544,33554688,1073742080,524288,0,1074266112,34078976,1073742080), T = new Array(536870928,541065216,16384,541081616,541065216,16,541081616,4194304,536887296,4210704,4194304,536870928,4194320,536887296,536870912,16400,0,4194320,536887312,16384,4210688,536887312,16,541065232,541065232,0,4210704,541081600,16400,4210688,541081600,536870912,536887296,16,541065232,4210688,541081616,4194304,16400,536870928,4194304,536887296,536870912,16400,536870928,541081616,4210688,541065216,4210704,541081600,0,541065232,16,16384,541065216,4210704,16384,4194320,536887312,0,541081600,536870912,4194320,536887312), A = new Array(2097152,69206018,67110914,0,2048,67110914,2099202,69208064,69208066,2097152,0,67108866,2,67108864,69206018,2050,67110912,2099202,2097154,67110912,67108866,69206016,69208064,2097154,69206016,2048,2050,69208066,2099200,2,67108864,2099200,67108864,2099200,2097152,67110914,67110914,69206018,69206018,2,2097154,67108864,67110912,2097152,69208064,2050,2099202,69208064,2050,67108866,69208066,69206016,2099200,0,2,69208066,0,2099202,69206016,2048,67108866,67110912,2048,2097154), L = new Array(268439616,4096,262144,268701760,268435456,268439616,64,268435456,262208,268697600,268701760,266240,268701696,266304,4096,64,268697600,268435520,268439552,4160,266240,262208,268697664,268701696,4160,0,0,268697664,268435520,268439552,266304,262144,266304,262144,268701696,4096,64,268697664,4096,266304,268439552,64,268435520,268697600,268697664,268435456,262144,268439616,0,268701760,262208,268435520,268697600,268439552,268439616,0,268701760,266240,266240,4160,4160,262208,268435456,268701696), S = function(t) {
for (var e, i, n, a = new Array(0,4,536870912,536870916,65536,65540,536936448,536936452,512,516,536871424,536871428,66048,66052,536936960,536936964), s = new Array(0,1,1048576,1048577,67108864,67108865,68157440,68157441,256,257,1048832,1048833,67109120,67109121,68157696,68157697), o = new Array(0,8,2048,2056,16777216,16777224,16779264,16779272,0,8,2048,2056,16777216,16777224,16779264,16779272), r = new Array(0,2097152,134217728,136314880,8192,2105344,134225920,136323072,131072,2228224,134348800,136445952,139264,2236416,134356992,136454144), c = new Array(0,262144,16,262160,0,262144,16,262160,4096,266240,4112,266256,4096,266240,4112,266256), l = new Array(0,1024,32,1056,0,1024,32,1056,33554432,33555456,33554464,33555488,33554432,33555456,33554464,33555488), u = new Array(0,268435456,524288,268959744,2,268435458,524290,268959746,0,268435456,524288,268959744,2,268435458,524290,268959746), d = new Array(0,65536,2048,67584,536870912,536936448,536872960,536938496,131072,196608,133120,198656,537001984,537067520,537004032,537069568), h = new Array(0,262144,0,262144,2,262146,2,262146,33554432,33816576,33554432,33816576,33554434,33816578,33554434,33816578), p = new Array(0,268435456,8,268435464,0,268435456,8,268435464,1024,268436480,1032,268436488,1024,268436480,1032,268436488), f = new Array(0,32,0,32,1048576,1048608,1048576,1048608,8192,8224,8192,8224,1056768,1056800,1056768,1056800), v = new Array(0,16777216,512,16777728,2097152,18874368,2097664,18874880,67108864,83886080,67109376,83886592,69206016,85983232,69206528,85983744), m = new Array(0,4096,134217728,134221824,524288,528384,134742016,134746112,16,4112,134217744,134221840,524304,528400,134742032,134746128), g = new Array(0,4,256,260,0,4,256,260,1,5,257,261,1,5,257,261), b = t.length > 8 ? 3 : 1, y = new Array(32 * b), _ = new Array(0,0,1,1,1,1,1,1,0,1,1,1,1,1,1,0), C = 0, w = 0, x = 0; x < b; x++) {
var k = t.charCodeAt(C++) << 24 | t.charCodeAt(C++) << 16 | t.charCodeAt(C++) << 8 | t.charCodeAt(C++)
, T = t.charCodeAt(C++) << 24 | t.charCodeAt(C++) << 16 | t.charCodeAt(C++) << 8 | t.charCodeAt(C++);
k ^= (n = 252645135 & (k >>> 4 ^ T)) << 4,
k ^= n = 65535 & ((T ^= n) >>> -16 ^ k),
k ^= (n = 858993459 & (k >>> 2 ^ (T ^= n << -16))) << 2,
k ^= n = 65535 & ((T ^= n) >>> -16 ^ k),
k ^= (n = 1431655765 & (k >>> 1 ^ (T ^= n << -16))) << 1,
k ^= n = 16711935 & ((T ^= n) >>> 8 ^ k),
n = (k ^= (n = 1431655765 & (k >>> 1 ^ (T ^= n << 8))) << 1) << 8 | (T ^= n) >>> 20 & 240,
k = T << 24 | T << 8 & 16711680 | T >>> 8 & 65280 | T >>> 24 & 240,
T = n;
for (var A = 0; A < _.length; A++)
_[A] ? (k = k << 2 | k >>> 26,
T = T << 2 | T >>> 26) : (k = k << 1 | k >>> 27,
T = T << 1 | T >>> 27),
T &= -15,
e = a[(k &= -15) >>> 28] | s[k >>> 24 & 15] | o[k >>> 20 & 15] | r[k >>> 16 & 15] | c[k >>> 12 & 15] | l[k >>> 8 & 15] | u[k >>> 4 & 15],
i = d[T >>> 28] | h[T >>> 24 & 15] | p[T >>> 20 & 15] | f[T >>> 16 & 15] | v[T >>> 12 & 15] | m[T >>> 8 & 15] | g[T >>> 4 & 15],
n = 65535 & (i >>> 16 ^ e),
y[w++] = e ^ n,
y[w++] = i ^ n << 16
}
return y
}(t), F = 0, z = e.length, B = 0, I = 32 == S.length ? 3 : 9;
p = 3 == I ? i ? new Array(0,32,2) : new Array(30,-2,-2) : i ? new Array(0,32,2,62,30,-2,64,96,2) : new Array(94,62,-2,32,64,2,30,-2,-2),
2 == s ? e += " " : 1 == s ? i && (c = 8 - z % 8,
e += String.fromCharCode(c, c, c, c, c, c, c, c),
8 === c && (z += 8)) : s || (e += "