仅用于学习记录。
主要问题:不好定位参数的位置
过程:
1.搜索接口地址,调用栈追了好多,没看到
2.搜索相关参数值 EUI,email ,password出来一大堆,找了好久定位到了位置看图
单步发现这个地方加密了参数
E = C({
email: j,
password: b
}),
跟到C函数内
function It(t) {
var e;
t = t || {};
var i = function(t) {
for (var e = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789!@#$%^&*", i = "", r = 0; r < t; r++) {
var n = Math.floor(Math.random() * e.length);
i += e.substring(n, n + 1)
}
return i
}(16)
, r = new Mt({});
r.setPublicKey("MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCYEVrK/4Mahiv0pUJgTybx4J9P5dUT/Y0PuwMbk+gMU+jrZnBiXGv6/hCH1avIhoBcE535F8nJQQN3UavZdFkYidsoXuEnat3+eVTp3FslyhRwIBDF09v4vDhRtxFOT+R7uH7h/mzmyA2/+lfIMWGIrffXprYizbV76+YQKhoqFQIDAQAB");
var s = r.encrypt(window.btoa(i))
, h = c().parse("0102030405060708")
, u = c().parse(i)
, f = window.btoa(n()(t).join(","))
, p = {};
return n()(t).forEach((function(e) {
var i = t[e]
, r = a().encrypt(i, u, {
iv: h,
padding: l()
});
r = r.toString(),
p[e] = r
}
)),
{
EUI: o()(e = "".concat(s, ".")).call(e, f),
encryptedParams: p
}
}
AES+RSA
为什么要记录?
AES接口需要把key传递过去,但是接口里没有发现key
所有单步看了很久,KEY拼接在EUI参数上 蛋疼
总结:一定要仔细观察加密参数的组成