目录

js逆向iwencai国内某金融网站实战-

目录

【js逆向】iwencai国内某金融网站实战

地址:aHR0cHM6Ly93d3cuaXdlbmNhaS5jb20vdW5pZmllZHdhcC9ob21lL2luZGV4

在搜索框中随便输入关键词

https://i-blog.csdnimg.cn/direct/f3e8fad84b1d41fab56ffcb335c5d374.png

查看请求标头,请求头中有一个特殊的 Hexin-V

, 它是加密过的;响应数据包中全是明文。搞清楚 Hexin-V 的值是怎么生成的,这个值和cookie中的v值也是一样的

https://i-blog.csdnimg.cn/direct/bf43ead5ac21491bb0158e6761fc2cbf.png

查看载荷

https://i-blog.csdnimg.cn/direct/2ab8667499c14bb691936ab2ea9a44e5.png

采用hook技术,调试的时候会停在给cookie赋值的地方。

https://i-blog.csdnimg.cn/direct/750eea79678b4d0683cb0d57f538cf39.png

点两下继续执行脚本就出现了

https://i-blog.csdnimg.cn/direct/8bddada2867d4476ad88529a3ba3317d.png

主要的实现代码在 O 函数里

https://i-blog.csdnimg.cn/direct/bc76161ec42c4e3eaf8a4303789d4592.png

在这个自运行函数下面,变量 rt 就是自运行函数里的变量 n ,所以给 n 赋值也就相当于给 rt 赋值。

https://i-blog.csdnimg.cn/direct/949b0ba9ccf1466d86f5ebe72cc24af9.png

ReferenceError: document is not defined  ReferenceError: window is not defined

var document = {};
var window = {};

TypeError: r[51].getElementsByTagName is not a function ,这句代码去掉

Kn = c[66][f + l] || r[51].getElementsByTagName(p + d)[r[52]]

var rt下面的那段函数

注释:

            function P() {
                var n = s[0]
                    , t = r[88]
                    , e = parseInt(u[13], c[122])
                    , a = s[217];
                S = new qn([a, a, a, a, n, n, n, e, t, t, t, t, t, t, t, a, t, n]),
                    S[p] = Jn.serverTimeNow(),
                    M(),
                    S[B] = Vn,
                    S[k] = Un,
                    S[R] = c[2],
                    S[h] = 3962565446,
                    S[b] = 3748,
                    S[g] = 1,
                    S[w] = 10,
                    S[m] = 5
            }
function M() {
                // var n = Qn.getCookie(Fn) || Zn.get(jn);
                // if (n && n[s[111]] == parseInt(c[221], e[93])) {
                //     var t = zn.decode(n);
                //     if (t && (S.decodeBuffer(t),
                //     S[l] != s[2]))
                //         return
                // }
                S[l] = Jn.random()
            }
function O() {
                S[R]++,
                    S[p] = Jn.serverTimeNow(),
                    S[d] = Jn.timeNow(),
                    S[B] = Vn,
                    S[I] = 0,
                    S[y] = 0,
                    S[_] = 0,
                    S[C] = 0,
                    S[E] = 0,
                    S[A] = 0;
                var n = S.toBuffer();
                return zn.encode(n)
            }

https://i-blog.csdnimg.cn/direct/70fe7cb271604222a1f3024e118c33dd.png

运行结果:

https://i-blog.csdnimg.cn/direct/4475d239c9e3426cbe41cc6be615557b.png

结果:

https://i-blog.csdnimg.cn/direct/82668822e0f34e80897d321cf00972af.png

此题和图灵练习平台第15题cookie加密一模一样