网址:aHR0cHM6Ly93d3cuZ205OS5jb20v
本文章仅作学习参考使用,不做其他使用。
输入登录密码,分析抓包看到如下

全局搜索password,跟到加密位置下断点此时已经能看到加密信息了

然后跟进e.encode函数,这是已经能知晓是rsa加密了,并且发现密码拼接了时间戳

再次跟进:this.jsencrypt.encrypt这个函数,代码在网页不好分析,我们把所有代码保存到本地分析

这时把所有代码折叠起来,发现了webpack关键字样, 凡是最后图中这个标记的类型毫无疑问是webpack类型的。有时也是 }([ 这种列表形式

回到头部将加载器扣下来,以作为后续改写使用

再次回到本地代码中搜索我们的关键字,定位到加密参数位置

一直不停的往上滑,直到我们定位到方法开始的位置,将标记的整个大方法全部扣取下来,并且放入到我们的刚才的加载器中,并且重新定义一下名字。


回到我们最后断点的位置,将调用方法扣去下了,放入到我们的方法里面。因为这个方法并不多,不需要我们改写,这里直接用就行。并且也定义一个名字


现在最主要的关键时刻来了,我们需要将webpack加载器给导出,并且知道他是怎么样调用的,图中这个三个标记的都指的是同一个函数。类似递归的作用。

知道这层含义,我们只需要稍微改写一下就能生成我们想要的的,定义一个全局变量_e,将i原本调用的4换成我们自己定义的名字:jsencrypt,在自己写一个调用的办法就可以了。


然后放入浏览器中试跑一下,就知道结果了

第一次写webpack,文字如有不对,请大家指出来! 以下是全部代码。
var _e;
!function(t) {
var i = {};
function e(s) {
if (i[s])
return i[s].exports;
var n = i[s] = {
exports: {},
id: s,
loaded: !1
};
return t[s].call(n.exports, n, n.exports, e),
n.loaded = !0,
n.exports
}
_e = e;
}({
jsencrypt:function(t, e, i) {
var s, n, r, s;
s = function(t, e, i) {
/*! JSEncrypt v2.3.1 | //npmcdn.com/jsencrypt@2.3.1/LICENSE.txt */
!function(t, o) {
r = [e],
n = o,
s = "function" == typeof n ? n.apply(e, r) : n,
!(void 0 !== s && (i.exports = s))
}(this, function(t) {
function e(t, e, i) {
null != t && ("number" == typeof t ? this.fromNumber(t, e, i) : null == e && "string" != typeof t ? this.fromString(t, 256) : this.fromString(t, e))
}
function i() {
return new e(null)
}
function s(t, e, i, s, n, r) {
for (; --r >= 0; ) {
var o = e * this[t++] + i[s] + n;
n = Math.floor(o / 67108864),
i[s++] = 67108863 & o
}
return n
}
function n(t, e, i, s, n, r) {
for (var o = 32767 & e, a = e >> 15; --r >= 0; ) {
var c = 32767 & this[t]
, l = this[t++] >> 15
, u = a * c + l * o;
c = o * c + ((32767 & u) << 15) + i[s] + (1073741823 & n),
n = (c >>> 30) + (u >>> 15) + a * l + (n >>> 30),
i[s++] = 1073741823 & c
}
return n
}
function r(t, e, i, s, n, r) {
for (var o = 16383 & e, a = e >> 14; --r >= 0; ) {
var c = 16383 & this[t]
, l = this[t++] >> 14
, u = a * c + l * o;
c = o * c + ((16383 & u) << 14) + i[s] + n,
n = (c >> 28) + (u >> 14) + a * l,
i[s++] = 268435455 & c
}
return n
}
function o(t) {
return Te.charAt(t)
}
function a(t, e) {
var i = Ie[t.charCodeAt(e)];
return null == i ? -1 : i
}
function c(t) {
for (var e = this.t - 1; e >= 0; --e)
t[e] = this[e];
t.t = this.t,
t.s = this.s
}
function l(t) {
this.t = 1,
this.s = 0 > t ? -1 : 0,
t > 0 ? this[0] = t : -1 > t ? this[0] = t + this.DV : this.t = 0
}
function u(t) {
var e = i();
return e.fromInt(t),
e
}
function p(t, i) {
var s;
if (16 == i)
s = 4;
else if (8 == i)
s = 3;
else if (256 == i)
s = 8;
else if (2 == i)
s = 1;
else if (32 == i)
s = 5;
else {
if (4 != i)
return void this.fromRadix(t, i);
s = 2
}
this.t = 0,
this.s = 0;
for (var n = t.length, r = !1, o = 0; --n >= 0; ) {
var c = 8 == s ? 255 & t[n] : a(t, n);
0 > c ? "-" == t.charAt(n) && (r = !0) : (r = !1,
0 == o ? this[this.t++] = c : o + s > this.DB ? (this[this.t - 1] |= (c & (1 << this.DB - o) - 1) << o,
this[this.t++] = c >> this.DB - o) : this[this.t - 1] |= c << o,
o += s,
o >= this.DB && (o -= this.DB))
}
8 == s && 0 != (128 & t[0]) && (this.s = -1,
o > 0 && (this[this.t - 1] |= (1 << this.DB - o) - 1 << o)),
this.clamp(),
r && e.ZERO.subTo(this, this)
}
function d() {
for (var t = this.s & this.DM; this.t > 0 && this[this.t - 1] == t; )
--this.t
}
function h(t) {
if (this.s < 0)
return "-" + this.negate().toString(t);
var e;
if (16 == t)
e = 4;
else if (8 == t)
e = 3;
else if (2 == t)
e = 1;
else if (32 == t)
e = 5;
else {
if (4 != t)
return this.toRadix(t);
e = 2
}
var i, s = (1 << e) - 1, n = !1, r = "", a = this.t, c = this.DB - a * this.DB % e;
if (a-- > 0)
for (c < this.DB && (i = this[a] >> c) > 0 && (n = !0,
r = o(i)); a >= 0; )
e > c ? (i = (this[a] & (1 << c) - 1) << e - c,
i |= this[--a] >> (c += this.DB - e)) : (i = this[a] >> (c -= e) & s,
0 >= c && (c += this.DB,
--a)),
i > 0 && (n = !0),
n && (r += o(i));
return n ? r : "0"
}
function f() {
var t = i();
return e.ZERO.subTo(this, t),
t
}
function g() {
return this.s < 0 ? this.negate() : this
}
function m(t) {
var e = this.s - t.s;
if (0 != e)
return e;
var i = this.t;
if (e = i - t.t,
0 != e)
return this.s < 0 ? -e : e;
for (; --i >= 0; )
if (0 != (e = this[i] - t[i]))
return e;
return 0
}
function _(t) {
var e, i = 1;
return 0 != (e = t >>> 16) && (t = e,
i += 16),
0 != (e = t >> 8) && (t = e,
i += 8),
0 != (e = t >> 4) && (t = e,
i += 4),
0 != (e = t >> 2) && (t = e,
i += 2),
0 != (e = t >> 1) && (t = e,
i += 1),
i
}
function b() {
return this.t <= 0 ? 0 : this.DB * (this.t - 1) + _(this[this.t - 1] ^ this.s & this.DM)
}
function y(t, e) {
var i;
for (i = this.t - 1; i >= 0; --i)
e[i + t] = this[i];
for (i = t - 1; i >= 0; --i)
e[i] = 0;
e.t = this.t + t,
e.s = this.s
}
function w(t, e) {
for (var i = t; i < this.t; ++i)
e[i - t] = this[i];
e.t = Math.max(this.t - t, 0),
e.s = this.s
}
function k(t, e) {
var i, s = t % this.DB, n = this.DB - s, r = (1 << n) - 1, o = Math.floor(t / this.DB), a = this.s << s & this.DM;
for (i = this.t - 1; i >= 0; --i)
e[i + o + 1] = this[i] >> n | a,
a = (this[i] & r) << s;
for (i = o - 1; i >= 0; --i)
e[i] = 0;
e[o] = a,
e.t = this.t + o + 1,
e.s = this.s,
e.clamp()
}
function x(t, e) {
e.s = this.s;
var i = Math.floor(t / this.DB);
if (i >= this.t)
return void (e.t = 0);
var s = t % this.DB
, n = this.DB - s
, r = (1 << s) - 1;
e[0] = this[i] >> s;
for (var o = i + 1; o < this.t; ++o)
e[o - i - 1] |= (this[o] & r) << n,
e[o - i] = this[o] >> s;
s > 0 && (e[this.t - i - 1] |= (this.s & r) << n),
e.t = this.t - i,
e.clamp()
}
function D(t, e) {
for (var i = 0, s = 0, n = Math.min(t.t, this.t); n > i; )
s += this[i] - t[i],
e[i++] = s & this.DM,
s >>= this.DB;
if (t.t < this.t) {
for (s -= t.s; i < this.t; )
s += this[i],
e[i++] = s & this.DM,
s >>= this.DB;
s += this.s
} else {
for (s += this.s; i < t.t; )
s -= t[i],
e[i++] = s & this.DM,
s >>= this.DB;
s -= t.s
}
e.s = 0 > s ? -1 : 0,
-1 > s ? e[i++] = this.DV + s : s > 0 && (e[i++] = s),
e.t = i,
e.clamp()
}
function S(t, i) {
var s = this.abs()
, n = t.abs()
, r = s.t;
for (i.t = r + n.t; --r >= 0; )
i[r] = 0;
for (r = 0; r < n.t; ++r)
i[r + s.t] = s.am(0, n[r], i, r, 0, s.t);
i.s = 0,
i.clamp(),
this.s != t.s && e.ZERO.subTo(i, i)
}
function C(t) {
for (var e = this.abs(), i = t.t = 2 * e.t; --i >= 0; )
t[i] = 0;
for (i = 0; i < e.t - 1; ++i) {
var s = e.am(i, e[i], t, 2 * i, 0, 1);
(t[i + e.t] += e.am(i + 1, 2 * e[i], t, 2 * i + 1, s, e.t - i - 1)) >= e.DV && (t[i + e.t] -= e.DV,
t[i + e.t + 1] = 1)
}
t.t > 0 && (t[t.t - 1] += e.am(i, e[i], t, 2 * i, 0, 1)),
t.s = 0,
t.clamp()
}
function T(t, s, n) {
var r = t.abs();
if (!(r.t <= 0)) {
var o = this.abs();
if (o.t < r.t)
return null != s && s.fromInt(0),
void (null != n && this.copyTo(n));
null == n && (n = i());
var a = i()
, c = this.s
, l = t.s
, u = this.DB - _(r[r.t - 1]);
u > 0 ? (r.lShiftTo(u, a),
o.lShiftTo(u, n)) : (r.copyTo(a),
o.copyTo(n));
var p = a.t
, d = a[p - 1];
if (0 != d) {
var h = d * (1 << this.F1) + (p > 1 ? a[p - 2] >> this.F2 : 0)
, f = this.FV / h
, g = (1 << this.F1) / h
, m = 1 << this.F2
, v = n.t
, b = v - p
, y = null == s ? i() : s;
for (a.dlShiftTo(b, y),
n.compareTo(y) >= 0 && (n[n.t++] = 1,
n.subTo(y, n)),
e.ONE.dlShiftTo(p, y),
y.subTo(a, a); a.t < p; )
a[a.t++] = 0;
for (; --b >= 0; ) {
var w = n[--v] == d ? this.DM : Math.floor(n[v] * f + (n[v - 1] + m) * g);
if ((n[v] += a.am(0, w, n, b, 0, p)) < w)
for (a.dlShiftTo(b, y),
n.subTo(y, n); n[v] < --w; )
n.subTo(y, n)
}
null != s && (n.drShiftTo(p, s),
c != l && e.ZERO.subTo(s, s)),
n.t = p,
n.clamp(),
u > 0 && n.rShiftTo(u, n),
0 > c && e.ZERO.subTo(n, n)
}
}
}
function I(t) {
var s = i();
return this.abs().divRemTo(t, null, s),
this.s < 0 && s.compareTo(e.ZERO) > 0 && t.subTo(s, s),
s
}
function $(t) {
this.m = t
}
function P(t) {
return t.s < 0 || t.compareTo(this.m) >= 0 ? t.mod(this.m) : t
}
function R(t) {
return t
}
function A(t) {
t.divRemTo(this.m, null, t)
}
function E(t, e, i) {
t.multiplyTo(e, i),
this.reduce(i)
}
function M(t, e) {
t.squareTo(e),
this.reduce(e)
}
function N() {
if (this.t < 1)
return 0;
var t = this[0];
if (0 == (1 & t))
return 0;
var e = 3 & t;
return e = e * (2 - (15 & t) * e) & 15,
e = e * (2 - (255 & t) * e) & 255,
e = e * (2 - ((65535 & t) * e & 65535)) & 65535,
e = e * (2 - t * e % this.DV) % this.DV,
e > 0 ? this.DV - e : -e
}
function O(t) {
this.m = t,
this.mp = t.invDigit(),
this.mpl = 32767 & this.mp,
this.mph = this.mp >> 15,
this.um = (1 << t.DB - 15) - 1,
this.mt2 = 2 * t.t
}
function B(t) {
var s = i();
return t.abs().dlShiftTo(this.m.t, s),
s.divRemTo(this.m, null, s),
t.s < 0 && s.compareTo(e.ZERO) > 0 && this.m.subTo(s, s),
s
}
function j(t) {
var e = i();
return t.copyTo(e),
this.reduce(e),
e
}
function L(t) {
for (; t.t <= this.mt2; )
t[t.t++] = 0;
for (var e = 0; e < this.m.t; ++e) {
var i = 32767 & t[e]
, s = i * this.mpl + ((i * this.mph + (t[e] >> 15) * this.mpl & this.um) << 15) & t.DM;
for (i = e + this.m.t,
t[i] += this.m.am(0, s, t, e, 0, this.m.t); t[i] >= t.DV; )
t[i] -= t.DV,
t[++i]++
}
t.clamp(),
t.drShiftTo(this.m.t, t),
t.compareTo(this.m) >= 0 && t.subTo(this.m, t)
}
function F(t, e) {
t.squareTo(e),
this.reduce(e)
}
function K(t, e, i) {
t.multiplyTo(e, i),
this.reduce(i)
}
function U() {
return 0 == (this.t > 0 ? 1 & this[0] : this.s)
}
function V(t, s) {
if (t > 4294967295 || 1 > t)
return e.ONE;
var n = i()
, r = i()
, o = s.convert(this)
, a = _(t) - 1;
for (o.copyTo(n); --a >= 0; )
if (s.sqrTo(n, r),
(t & 1 << a) > 0)
s.mulTo(r, o, n);
else {
var c = n;
n = r,
r = c
}
return s.revert(n)
}
function z(t, e) {
var i;
return i = 256 > t || e.isEven() ? new $(e) : new O(e),
this.exp(t, i)
}
function H() {
var t = i();
return this.copyTo(t),
t
}
function q() {
if (this.s < 0) {
if (1 == this.t)
return this[0] - this.DV;
if (0 == this.t)
return -1
} else {
if (1 == this.t)
return this[0];
if (0 == this.t)
return 0
}
return (this[1] & (1 << 32 - this.DB) - 1) << this.DB | this[0]
}
function J() {
return 0 == this.t ? this.s : this[0] << 24 >> 24
}
function G() {
return 0 == this.t ? this.s : this[0] << 16 >> 16
}
function Y(t) {
return Math.floor(Math.LN2 * this.DB / Math.log(t))
}
function W() {
return this.s < 0 ? -1 : this.t <= 0 || 1 == this.t && this[0] <= 0 ? 0 : 1
}
function Z(t) {
if (null == t && (t = 10),
0 == this.signum() || 2 > t || t > 36)
return "0";
var e = this.chunkSize(t)
, s = Math.pow(t, e)
, n = u(s)
, r = i()
, o = i()
, a = "";
for (this.divRemTo(n, r, o); r.signum() > 0; )
a = (s + o.intValue()).toString(t).substr(1) + a,
r.divRemTo(n, r, o);
return o.intValue().toString(t) + a
}
function Q(t, i) {
this.fromInt(0),
null == i && (i = 10);
for (var s = this.chunkSize(i), n = Math.pow(i, s), r = !1, o = 0, c = 0, l = 0; l < t.length; ++l) {
var u = a(t, l);
0 > u ? "-" == t.charAt(l) && 0 == this.signum() && (r = !0) : (c = i * c + u,
++o >= s && (this.dMultiply(n),
this.dAddOffset(c, 0),
o = 0,
c = 0))
}
o > 0 && (this.dMultiply(Math.pow(i, o)),
this.dAddOffset(c, 0)),
r && e.ZERO.subTo(this, this)
}
function X(t, i, s) {
if ("number" == typeof i)
if (2 > t)
this.fromInt(1);
else
for (this.fromNumber(t, s),
this.testBit(t - 1) || this.bitwiseTo(e.ONE.shiftLeft(t - 1), at, this),
this.isEven() && this.dAddOffset(1, 0); !this.isProbablePrime(i); )
this.dAddOffset(2, 0),
this.bitLength() > t && this.subTo(e.ONE.shiftLeft(t - 1), this);
else {
var n = new Array
, r = 7 & t;
n.length = (t >> 3) + 1,
i.nextBytes(n),
r > 0 ? n[0] &= (1 << r) - 1 : n[0] = 0,
this.fromString(n, 256)
}
}
function tt() {
var t = this.t
, e = new Array;
e[0] = this.s;
var i, s = this.DB - t * this.DB % 8, n = 0;
if (t-- > 0)
for (s < this.DB && (i = this[t] >> s) != (this.s & this.DM) >> s && (e[n++] = i | this.s << this.DB - s); t >= 0; )
8 > s ? (i = (this[t] & (1 << s) - 1) << 8 - s,
i |= this[--t] >> (s += this.DB - 8)) : (i = this[t] >> (s -= 8) & 255,
0 >= s && (s += this.DB,
--t)),
0 != (128 & i) && (i |= -256),
0 == n && (128 & this.s) != (128 & i) && ++n,
(n > 0 || i != this.s) && (e[n++] = i);
return e
}
function et(t) {
return 0 == this.compareTo(t)
}
function it(t) {
return this.compareTo(t) < 0 ? this : t
}
function st(t) {
return this.compareTo(t) > 0 ? this : t
}
function nt(t, e, i) {
var s, n, r = Math.min(t.t, this.t);
for (s = 0; r > s; ++s)
i[s] = e(this[s], t[s]);

最低0.47元/天 解锁文章

被折叠的 条评论
为什么被折叠?



