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 … 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
http://vip.qimingpian.com/#/finos/investment/ireport 企名片里面创投 报告里面 ajax 加载的数据,但是是 base64 加密,但是 base64 解密总是失败
1
CEBBCAT 2018-07-16 18:30:53 +08:00
确定是 base64 吗?会不会有字符串截取偏移值或者非标准算法?
|
3
crab 2018-07-16 18:47:36 +08:00
也有可能是密文后的 base64
|
4
ThirdFlame 2018-07-16 18:50:52 +08:00
不是可见字符。base64 其实不是加密,只是编码。 3 个字节编码为 4 个字节, 解码 4 个字节解码为 3 个字节。
|
5
nu11001 2018-07-16 18:57:18 +08:00
明显是加密后的数据,本来想帮你看来自,然而并不想注册
|
6
airdge 2018-07-16 19:23:31 +08:00
应该不是 btoa
|
7
airdge 2018-07-16 20:24:19 +08:00 4
算法位于:http://vip.qimingpian.com/static/js/app.7b6630a6e4c6f54565dd.js
解密函数 function n(t) { return JSON.parse(a("5e5062e82f15fe4ca9d24bc561080e0e", atob(t), 0, 0, "012345677890123", 1)) } 相关函数在这个 js 里面 解密结果为 object Object { items=[40], total="110354"} |
11
bestehen OP @ThirdFlame 我知道不是加密,是一种摘要算法
|
14
whoami9894 2018-07-16 23:46:31 +08:00 via Android 3
|
15
bestehen OP @whoami9894 sorry 记错了,是 md5
|
18
carlclone 2018-07-17 04:50:57 +08:00 via Android
base64 是编码,能连续说错我觉得你还是别搞这些了
|
19
wenzhoou 2018-07-17 07:59:29 +08:00 via Android 2
这就是上课说听懂了,然后考试考零分的选手。
|
20
airdge 2018-07-17 10:08:08 +08:00
function a(t, e, i, a, n, o) {
var l, c, r, d, h, u, p, v, m, f, g, _, b, y, w = 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), x = 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), k = 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), S = 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), $ = 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), z = 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), A = 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), I = s(t), L = 0, D = e.length, T = 0, P = 32 == I.length ? 3 : 9; v = 3 == P ? 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 == o ? e += " " : 1 == o ? i && (r = 8 - D % 8, e += String.fromCharCode(r, r, r, r, r, r, r, r), 8 === r && (D += 8)) : o || (e += "\0\0\0\0\0\0\0\0"); var N = "", M = ""; for (1 == a && (m = n.charCodeAt(L++) << 24 | n.charCodeAt(L++) << 16 | n.charCodeAt(L++) << 8 | n.charCodeAt(L++), g = n.charCodeAt(L++) << 24 | n.charCodeAt(L++) << 16 | n.charCodeAt(L++) << 8 | n.charCodeAt(L++), L = 0); L<D;) { for (u = e.charCodeAt(L++) << 24 | e.charCodeAt(L++) << 16 | e.charCodeAt(L++) << 8 | e.charCodeAt(L++), p = e.charCodeAt(L++) << 24 | e.charCodeAt(L++) << 16 | e.charCodeAt(L++) << 8 | e.charCodeAt(L++), 1 == a && (i ? (u ^= m, p ^= g) : (f = m, _ = g, m = u, g = p)), r = 252645135 & (u >>> 4 ^ p), p ^= r, u ^= r << 4, r = 65535 & (u >>> 16 ^ p), p ^= r, u ^= r << 16, r = 858993459 & (p >>> 2 ^ u), u ^= r, p ^= r << 2, r = 16711935 & (p >>> 8 ^ u), u ^= r, p ^= r << 8, r = 1431655765 & (u >>> 1 ^ p), p ^= r, u ^= r << 1, u = u << 1 | u >>> 31, p = p << 1 | p >>> 31, c = 0; c<P; c += 3) { for (b = v[c + 1], y = v[c + 2], l = v[c]; l != b; l += y) d = p ^ I[l], h = (p >>> 4 | p << 28) ^ I[l + 1], r = u, u = p, p = r ^ (C[d >>> 24 & 63] | k[d >>> 16 & 63] | $[d >>> 8 & 63] | A[63 & d] | w[h >>> 24 & 63] | x[h >>> 16 & 63] | S[h >>> 8 & 63] | z[63 & h]); r = u, u = p, p = r } u = u >>> 1 | u << 31, p = p >>> 1 | p << 31, r = 1431655765 & (u >>> 1 ^ p), p ^= r, u ^= r << 1, r = 16711935 & (p >>> 8 ^ u), u ^= r, p ^= r << 8, r = 858993459 & (p >>> 2 ^ u), u ^= r, p ^= r << 2, r = 65535 & (u >>> 16 ^ p), p ^= r, u ^= r << 16, r = 252645135 & (u >>> 4 ^ p), p ^= r, u ^= r << 4, 1 == a && (i ? (m = u, g = p) : (u ^= f, p ^= _)), M += String.fromCharCode(u >>> 24, u >>> 16 & 255, u >>> 8 & 255, 255 & u, p >>> 24, p >>> 16 & 255, p >>> 8 & 255, 255 & p), T += 8, 512 == T && (N += M, M = "", T = 0) } if (N += M, N = N.replace(/\0*$/g, ""), !i) { if (1 === o) { var D = N.length, j = 0; D && (j = N.charCodeAt(D - 1)), j<=8 && (N = N.substring(0, D - j)) } N = decodeURIComponent(escape(N)) } return N } |
21
airdge 2018-07-17 10:10:22 +08:00 1
function s(t) {
for (var e, i, a, s = new Array(0, 4, 536870912, 536870916, 65536, 65540, 536936448, 536936452, 512, 516, 536871424, 536871428, 66048, 66052, 536936960, 536936964), n = 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), l = 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), r = new Array(0, 1024, 32, 1056, 0, 1024, 32, 1056, 33554432, 33555456, 33554464, 33555488, 33554432, 33555456, 33554464, 33555488), d = new Array(0, 268435456, 524288, 268959744, 2, 268435458, 524290, 268959746, 0, 268435456, 524288, 268959744, 2, 268435458, 524290, 268959746), h = new Array(0, 65536, 2048, 67584, 536870912, 536936448, 536872960, 536938496, 131072, 196608, 133120, 198656, 537001984, 537067520, 537004032, 537069568), u = 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), v = new Array(0, 32, 0, 32, 1048576, 1048608, 1048576, 1048608, 8192, 8224, 8192, 8224, 1056768, 1056800, 1056768, 1056800), m = new Array(0, 16777216, 512, 16777728, 2097152, 18874368, 2097664, 18874880, 67108864, 83886080, 67109376, 83886592, 69206016, 85983232, 69206528, 85983744), f = 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), _ = t.length>8 ? 3 : 1, b = new Array(32 * _), y = new Array(0, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0), w = 0, C = 0, x = 0; x<_; x++) { var k = t.charCodeAt(w++) << 24 | t.charCodeAt(w++) << 16 | t.charCodeAt(w++) << 8 | t.charCodeAt(w++), S = t.charCodeAt(w++) << 24 | t.charCodeAt(w++) << 16 | t.charCodeAt(w++) << 8 | t.charCodeAt(w++); a = 252645135 & (k >>> 4 ^ S), S ^= a, k ^= a << 4, a = 65535 & (S >>> -16 ^ k), k ^= a, S ^= a << -16, a = 858993459 & (k >>> 2 ^ S), S ^= a, k ^= a << 2, a = 65535 & (S >>> -16 ^ k), k ^= a, S ^= a << -16, a = 1431655765 & (k >>> 1 ^ S), S ^= a, k ^= a << 1, a = 16711935 & (S >>> 8 ^ k), k ^= a, S ^= a << 8, a = 1431655765 & (k >>> 1 ^ S), S ^= a, k ^= a << 1, a = k << 8 | S >>> 20 & 240, k = S << 24 | S << 8 & 16711680 | S >>> 8 & 65280 | S >>> 24 & 240, S = a; for (var $ = 0; $<y.length; $++) y[$] ? (k = k << 2 | k >>> 26, S = S << 2 | S >>> 26) : (k = k << 1 | k >>> 27, S = S << 1 | S >>> 27), k &= -15, S &= -15, e = s[k >>> 28] | n[k >>> 24 & 15] | o[k >>> 20 & 15] | l[k >>> 16 & 15] | c[k >>> 12 & 15] | r[k >>> 8 & 15] | d[k >>> 4 & 15], i = h[S >>> 28] | u[S >>> 24 & 15] | p[S >>> 20 & 15] | v[S >>> 16 & 15] | m[S >>> 12 & 15] | f[S >>> 8 & 15] | g[S >>> 4 & 15], a = 65535 & (i >>> 16 ^ e), b[C++] = e ^ a, b[C++] = i ^ a << 16 } return b } function n(t) { return JSON.parse(a("5e5062e82f15fe4ca9d24bc561080e0e",atob(t),0,0,"012345677890123",1)) } var de='这边是加密数据'; console.log(n(de)); 自己复制到控制台运行一下就行了 得到的是 object 内容里就有汉字 @bestehen |
22
bestehen OP @airdge sudo npm install btoa-atob
[email protected] /usr/bin └── [email protected] return JSON.parse(a("5e5062e82f15fe4ca9d24bc561080e0e",atob(t),0,0,"012345677890123",1)) ^ ReferenceError: atob is not defined at n (/home/shenjianlin/code.js:47:56) at Object.<anonymous> (/home/shenjianlin/code.js:54:13) at Module._compile (module.js:577:32) at Object.Module._extensions..js (module.js:586:10) at Module.load (module.js:494:32) at tryModuleLoad (module.js:453:12) at Function.Module._load (module.js:445:3) at Module.runMain (module.js:611:10) at run (bootstrap_node.js:394:7) at startup (bootstrap_node.js:160:9) 为啥我安装了还是报错呢? |
23
baxtergu 2018-07-17 11:42:22 +08:00
简单难度:如果不想花时间在加解密上的话可以用模拟浏览器方式从生成的 DOM 里爬解密后的数据。
困难难度:把用于加解密的 js 代码从混淆后的 js 文件中整理出来,然后用 Python 跑或者用 nodejs 以接口方式提供调用。 地狱难度:破解混淆后的 js 文件中的加密算法,直接在 Python 中自己解密。 |
25
airdge 2018-07-17 14:58:21 +08:00
|
26
bestehen OP @airdge shenjianlin@iZm5eirdrun3ajzx3iii0wZ:~/js$ node code.js
/home/shenjianlin/js/code.js:41 N = decodeURIComponent(escape(N)) ^ URIError: URI malformed at decodeURIComponent (native) at a (/home/shenjianlin/js/code.js:41:5) at n (/home/shenjianlin/js/code.js:56:19) at Object.<anonymous> (/home/shenjianlin/js/code.js:63:13) at Module._compile (module.js:577:32) at Object.Module._extensions..js (module.js:586:10) at Module.load (module.js:494:32) at tryModuleLoad (module.js:453:12) at Function.Module._load (module.js:445:3) at Module.runMain (module.js:611:10) |
30
airdge 2018-07-22 20:37:02 +08:00
@bestehen
控制台调试相关参数 对比 nodejs 输出有哪些异常 I = s(t), L = 0, D = e.length, 执行这一行时 浏览器 D 值 26712; nodejs D 值为 25310 就可以知道 Buffer 转码异常 function atob(a) { var b, c, e, d, f, g = [-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 62, -1, -1, -1, 63, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, -1, -1, -1, -1, -1, -1, -1, 0, 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, -1, -1, -1, -1, -1, -1, 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, -1, -1, -1, -1, -1]; d = a.length; e = 0; for (f = ""; e < d;) { do b = g[a.charCodeAt(e++) & 255]; while (e < d && -1 == b); if (-1 == b) break; do c = g[a.charCodeAt(e++) & 255]; while (e < d && -1 == c); if (-1 == c) break; f += String.fromCharCode(b << 2 | (c & 48) >> 4); do { b = a.charCodeAt(e++) & 255; if (61 == b) return f; b = g[b] } while (e < d && -1 == b); if (-1 == b) break; f += String.fromCharCode((c & 15) << 4 | (b & 60) >> 2); do { c = a.charCodeAt(e++) & 255; if (61 == c) return f; c = g[c] } while (e < d && -1 == c); if (-1 == c) break; f += String.fromCharCode((b & 3) << 6 | c) } return f } 用这个函数替换 Buffer 就可以了 |