2.某验3第二个W值

作者声明:文章仅供学习交流与参考!严禁用于任何商业与非法用途!否则由此产生的一切后果均与作者无关!如有侵权,请联系作者本人进行删除!

第二个W值

目标: aHR0cHM6Ly93d3cuZ2VldGVzdC5jb20vZGVtby9zbGlkZS1mbG9hdC5odG1s

点击按钮验证

在这里插入图片描述

接口分析:

在这里插入图片描述

ajax.php这个接口就带上了第二个w作为参数以及gt和challenge,它们是从register-slide这个接口返回的

在这里插入图片描述

get.php接口,返回了滑块图片信息,以及c和s参数,这两个参数在验证滑块的第三个w需要用到

在这里插入图片描述

在这里插入图片描述


开始逆向第二个w值,第二个w我们搜索就不行了,它在代码里面不是明文也不是unicode编码的格式,只能断点发包位置,通过跟堆栈的方式找到

在这里插入图片描述

var n = {};大概这个位置,就是我们w参数生成的位置了,n[$_CFCIM(852)] = t[$_CFCJe(1132)]

在这里插入图片描述

我们断点var n = {};这个位置,然后控制台打印t[$_CFCJe(1132)]发现已经出值了,所有生成我们的w参数一定还要在前面所以在当前方法的第一行打上断点单步调试,找到w生成的位置

在这里插入图片描述

发现在经过t[$_CFCIM(1144)]();这个函数后,我们的w值 t[$_CFCJe(1132)]就生成了,所以我们跟进去看w是如何生成的

在这里插入图片描述

发现在i[$_CFFJQ(1132)] = p[$_CFFJQ(1138)](c[$_CFFJQ(40)](r, i[$_CFFIu(1120)]()));这行i[$_CFFJQ(1132)]被赋值了,关键代码是这里:

 i[$_CFFJQ(1132)] = p[$_CFFJQ(1138)](c[$_CFFJQ(40)](r, i[$_CFFIu(1120)]()));

在调用= p[$_CFFJQ(1138)]方法后,就会得到w值,先看看参数

在这里插入图片描述

发现c这个对象下面,有加密方法,

第一个参数,r是一个对象

在这里插入图片描述

{
    "lang": "zh-cn",
    "type": "fullpage",
    "tt": "M?d8Pjp8Pjp8Pjp8Pjp8Pjp8PjB)9U*S(e5,(q(e(5be,5e5,bbe55bn((5ne(e,(,5,((8e(b(-ee,55b8b((091j/)3-(@MM-N3*M?-U/)ME3)(?-U/)3,M?-PN1-U-)9U7)3)M@3,(?MM-U?)?)(?,N(-d/)(U-)1E-*-U-)3)(?ME.)M91/E---j-)M95N9d5PM91j-*M9-U-)?)(?-U5)3)M?7,M?-N3-(?ME-N3*(?-d-NM93)(E-*/)(N1E-*9A.f4gM91j-*M99E-*.1-)7)(P3)M?MU-N3)(j/*ME-f5@J2INM9.)M4l(((((,((b(((b(,(q(e@5,((bnq(e8b(e(555e,,(5b((,(n(qb8e,e5(bbb5(8IJJIZfdiZh9XH5-.ZEZ/b9B/NUC5ORb9?S646I--Ajb9@*)n--6/b965/,.,b91n-*5Pb92D1d8*MN4)(n-*0)(Y-)b91B8)(p@b9-Y-)bE4)(c5N4)M@b9-N15/)1I-*-n1)4,(?bb-Mbb-db9-P-Y/)4)(0A6?-c1?b95S0*MY-)5?0)N5-*b90)(N25-)b98*M?cM-)M9,)(9bM-5/)(?,)(9/)(),)(9-5/)(M-5?)ME)qqqqqqqqqqqqqqqqqqqq(9G)SFNkTM(/E()SELpEE/0jFNj/FSFSFSFNSEE///()SFmUMA,(R(M295*-.(Q5*)91(A,(R(b5-)(9Q2)(M999*9Q)*A,(N(b291(2b5,(b-,(b1)(M191*(b1(1,(b(N(M5.(91*(bA(5*(*-*(b5(1,)9(b1(50(,,((bI(5.(,)b(bE(5/(,)9(c((5J(*/*(NNb1E5*)E1*(NMM1,(M(NMb1*(M5*(,(M(b5(5*((((((((8qM",
    "light": "DIV_0",
    "s": "c7c3e21112fe4f741921cb3e4ff9f7cb",
    "h": "321f9af1e098233dbd03f250fd2b5e21",
    "hh": "39bd9cad9e425c3a8f51610fd506e3b3",
    "hi": "09eb21b3ae9542a9bc1e8b63b3d9a467",
    "vip_order": -1,
    "ct": -1,
    "ep": {
        "v": "9.1.9-dbjg5z",
        "te": false,
        "me": true,
        "ven": "Google Inc.",
        "ren": "ANGLE (NVIDIA GeForce GTX 1650#0x1700ddb7cd8f5644# Direct3D11 vs_5_0 ps_5_0)",
        "fp": [
            "move",
            1821,
            221,
            1725339552126,
            "pointermove"
        ],
        "lp": [
            "up",
            1022,
            309,
            1725339552763,
            "pointerup"
        ],
        "em": {
            "ph": 0,
            "cp": 0,
            "ek": "11",
            "wd": 0,
            "nt": 0,
            "si": 0,
            "sc": 0
        },
        "tm": {
            "a": 1725339547052,
            "b": 1725339547078,
            "c": 1725339547078,
            "d": 0,
            "e": 0,
            "f": 1725339547054,
            "g": 1725339547054,
            "h": 1725339547054,
            "i": 1725339547054,
            "j": 1725339547054,
            "k": 0,
            "l": 1725339547060,
            "m": 1725339547073,
            "n": 1725339547075,
            "o": 1725339547080,
            "p": 1725339547150,
            "q": 1725339547150,
            "r": 1725339547152,
            "s": 1725339547158,
            "t": 1725339547158,
            "u": 1725339547158
        },
        "dnf": "dnf",
        "by": 0
    },
    "passtime": 109030,
    "rp": "dd5f9924b2303ca49b5887b10e8abfc9",
    "captcha_token": "2091149465",
    "du6o": "eyjf7nne"
}

第二个参数是一个随机字符串可以写死

r值有5个参数需要通过方法计算得出来:tt,s,h,hh,hi,rp

好了,现在开始分析r值

                            r = $_CFGDl(700) + i[$_CFGDl(1181)] + $_CFGDl(1142) + n(o[$_CFGEr(56)]() + n(n[$_CFGDl(56)]()) + n(e[$_CFGDl(56)]())) + $_CFGEr(1197);

i[$_CFGDl(1181)]保存了这个r对象部分的参数

在这里插入图片描述

我们去找来源,找到是来自当前方法前面一部分,断点过去

在这里插入图片描述

把这段代码格式化一下

for (var a = [[$_CFEEZ(226), o[$_CFEDW(226)] || $_CFEDW(230)], //a[0][0],a[0][1]
              [$_CFEDW(310), $_CFEEZ(1123)],//a[1][0],a[1][1]
              [$_CFEDW(1143), //a[2][0],
               function(e, t, n) {
    var $_CFEIO = rvhWY.$_CI
      , $_CFEHs = ['$_CFFBQ'].concat($_CFEIO)
      , $_CFEJf = $_CFEHs[1];
    $_CFEHs.shift();
    var $_CFFAx = $_CFEHs[0];
    if (!t || !n)
        return e;
    var r, o = 0, i = e, s = t[0], a = t[2], _ = t[4];
    while (r = n[$_CFEIO(285)](o, 2)) {
        o += 2;
        var c = parseInt(r, 16)
          , l = String[$_CFEJf(415)](c)
          , u = (s * c * c + a * c + _) % e[$_CFEIO(96)];
        i = i[$_CFEJf(285)](0, u) + l + i[$_CFEIO(285)](u);
    }
    return i;
}(e,  o[$_CFEDW(816)], o[$_CFEEZ(520)]) || -1], //a[2][1]
    [$_CFEEZ(1177), r || -1], //a[3][0],a[3][1]
    [$_CFEEZ(520), H(p[$_CFEEZ(978)](t))],//a[4][0],a[4][1]
    [$_CFEEZ(1166), H(p[$_CFEEZ(978)](n))],//a[5][0],a[5][1]
    [$_CFEEZ(1134), H(n)], //a[6][0],a[6][1]
    [$_CFEEZ(1107), H(i[$_CFEDW(1109)])], //a[7][0],a[7][1]
    [$_CFEEZ(1126), i[$_CFEDW(1126)] || -1],//a[8][0],a[8][1]
    [$_CFEDW(1135), i[$_CFEEZ(1135)] || -1],//a[9][0],a[9][1]
    [$_CFEDW(1184), i[$_CFEEZ(1112)]() || -1], //a[10][0],a[10][1]
    [$_CFEDW(1125), s || -1], //a[12][0],a[12][1]
    [$_CFEEZ(1196), H(o[$_CFEDW(354)] + o[$_CFEEZ(355)] + s)]],//a[13][0],a[13][1]
     _ = 0; _ < a[$_CFEDW(96)]; _++)
           i[$_CFEDW(1181)] += "'" + a[_][0] + ":" + JSON['Stringify'](a[_][1]) +"'";//循环的这段代码
    

可以发现 a[_][0]是key,a[_][1]是value

在这里插入图片描述

  1. 找tt生成位置a[2][1]他是调用了一个方法得到的结果,这个方法有三个参数e, o[$_CFEDW(816)], o[$_CFEEZ(520)]

    第一个参数e固定

    第二个参数o[$_CFEDW(816)]是c值

    第三个参数o[$_CFEEZ(520)]是s值

    在这里插入图片描述

  2. s位置是a[4][1] ,是H(p[$_CFEEZ(978)](t)) 直接扣即可

  3. h位置是a[5][1],是H(p[$_CFEEZ(978)](n))

  4. hh位置是a[6][1],是H(n)

  5. hi位置是a[7][1],是H(i[$_CFEDW(1109)])

  6. rp位置是a[12][1],是H(o[$_CFEDW(354)] + o[$_CFEEZ(355)] + s)

    这里分析这三个参数发现o[$_CFEDW(354)]是gt,o[$_CFEEZ(355)]是challenge, s是passtime可以跟对象里面的passtime要保持一致

    在这里插入图片描述

    最后分析w的加密

     i[$_CFFJQ(1132)] = p[$_CFFJQ(1138)](c[$_CFFJQ(40)](r, i[$_CFFIu(1120)]()));
    //w = p[$_CFFJQ(1138)](c["encrypt"](r, 随机字符串固定即可);
    

    在这里插入图片描述

    最后分析w的加密

     i[$_CFFJQ(1132)] = p[$_CFFJQ(1138)](c[$_CFFJQ(40)](r, i[$_CFFIu(1120)]()));
    //w = p[$_CFFJQ(1138)](c["encrypt"](r, 随机字符串固定即可);
    

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值