3.某验3第三个W值

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

目标: aHR0cHM6Ly93d3cuZ2VldGVzdC5jb20vZGVtby9zbGlkZS1mbG9hdC5odG1s

任意滑动一下滑块,让第三个W能搜索到

在这里插入图片描述

接口分析:

在这里插入图片描述

ajax.php就是我们最终滑动验证返回的结果了,请求参数gtchallenge我们都能拿到,目前就需要这个w参数,callback就是一个固定字符串geetest加时间戳,其他参数固定即可

F12搜索\u0077,找到第三个w生成的位置

在这里插入图片描述

找到w如何生成的,代码如下

                var u = r[$_CAHJS(737)]()
                  , l = V[$_CAHJS(392)](gt[$_CAIAK(254)](o), r[$_CAIAK(744)]())
                  , h = m[$_CAIAK(792)](l)
                var w = h + u

首先来看u是怎么来的,断点进r[$_CAHJS(737)]()方法

在这里插入图片描述

得到var u = new U()[$_CBGAK(392)](this[$_CBGAK(744)](!0))

在这里插入图片描述

发现this[$_CBGAK(744)](!0)它又是一个随机值,跟方法过去会发现跟前面两次w调用是随机字符串方法是一致的,所以我们也可以固定写好

new U()[$_CBGAK(392)]直接扣代码即可

分析l

var l = V[$_CAHJS(392)](gt[$_CAIAK(254)](o), r[$_CAIAK(744)]())

第一个参数gt[$_CAIAK(254)](o)是一个对象转字符串,第二个参数r[$_CAIAK(744)]()是随机字符串,也就是跟this[$_CBGAK(744)](!0)是同一个东西

分析h

var h = m["$_FEX"](l)

扣代码就ok了

下面回到我们分析l的部分,第一个参数o

{
  "lang": "zh-cn",
  "userresponse": "88e88dd8eded71c",
  "passtime": 379,
  "imgload": 66,
  "aa": "F(!!OsssssssussssssssssssssssssssssstssssssssDsssswssss(!!(002,16.X1*/*.*-,*-),k*)-*-),,)-)*--),,*-,-)-0.-0(??1$*K",
  "ep": {
    "v": "7.9.2",
    "$_BIE": false,
    "me": true,
    "tm": {
      "a": 1725360705197,
      "b": 1725360705317,
      "c": 1725360705317,
      "d": 0,
      "e": 0,
      "f": 1725360705204,
      "g": 1725360705218,
      "h": 1725360705223,
      "i": 1725360705223,
      "j": 1725360705277,
      "k": 1725360705250,
      "l": 1725360705277,
      "m": 1725360705304,
      "n": 1725360705307,
      "o": 1725360705318,
      "p": 1725360705416,
      "q": 1725360705416,
      "r": 1725360705418,
      "s": 1725360705422,
      "t": 1725360705422,
      "u": 1725360705422
    },
    "td": -1
  },
  "h9s9": "1816378497",
  "rp": "7581565931d5f3e49ad3d155ccde1791"
}

o是长这样的字符串,我们需要逆出userresponse,aa,rp这三个参数

1.rp位置

在这里插入图片描述

手动解混淆

rp = X(gt + challenge.slice(0,32)+ passtime)
  1. aa位置

    首先往上面翻代码找到o生成的位置

    在这里插入图片描述

发现这个o.e就是aa的值,我们继续跟e,e是第二个参数,跟上一个栈,找到调用处,第二个参数e

在这里插入图片描述

这个l是第二个参数,它就是o.e的值,也就是aa的值

var l = n[$_DAAAU(985)][$_CJJJU(1075)](n[$_CJJJU(985)][$_CJJJU(1073)](), n[$_CJJJU(67)][$_CJJJU(1033)], n[$_DAAAU(67)][$_CJJJU(345)]);
// aa = n[$_DAAAU(985)][$_CJJJU(1075)](n[$_CJJJU(985)][$_CJJJU(1073)](), n[$_CJJJU(67)][$_CJJJU(1033)], n[$_DAAAU(67)][$_CJJJU(345)]);

n[$_CJJJU(985)][$_CJJJU(1073)]()第一个是轨迹

n[$_CJJJU(67)][$_CJJJU(1033)]第二个是c

n[$_DAAAU(67)][$_CJJJU(345)]第三个是s

继续跟找轨迹来源

跟进去 n[$_CJJJU(985)][$_CJJJU(1073)]()

进去找到return返回处

在这里插入图片描述

r[$_BEGJO(405)]($_BEHAO(2)) + $_BEHAO(457) + i[$_BEGJO(405)]($_BEGJO(2)) + $_BEGJO(457) + o[$_BEGJO(405)]($_BEGJO(2)) 
//这个就是n[$_CJJJU(985)][$_CJJJU(1073)]()
//手动解混淆
r['join']('') + "!!" + i['join']('') + "!!"+ o['join']('') 

可以观察这个代码用到了rio

他们都在

return new ct(t)[$_BEHAO(59)](function (t) {
    var $_BEHJU = mwbxQ.$_Cg
        , $_BEHIM = ['$_BEICs'].concat($_BEHJU)
        , $_BEIAi = $_BEHIM[1];
    $_BEHIM.shift();
    var $_BEIBp = $_BEHIM[0];
    var e = function (t) {
        var $_BEIE_ = mwbxQ.$_Cg
            , $_BEIDR = ['$_BEIHQ'].concat($_BEIE_)
            , $_BEIFM = $_BEIDR[1];
        $_BEIDR.shift();
        var $_BEIGI = $_BEIDR[0];
        for (var e = [[1, 0], [2, 0], [1, -1], [1, 1], [0, 1], [0, -1], [3, 0], [2, -1], [2, 1]], n = 0, r = e[$_BEIFM(192)]; n < r; n++)
            if (t[0] == e[n][0] && t[1] == e[n][1])
                return $_BEIE_(441)[n];
        return 0;
    }(t);
    e ? i[$_BEHJU(137)](e) : (r[$_BEIAi(137)](n(t[0])),
        i[$_BEHJU(137)](n(t[1]))),
        o[$_BEIAi(137)](n(t[2]));
})

这个算法进行了改变,然后可以看到这个算法只传递了一个参数t

继续往上找t来源

在这里插入图片描述

找到这个t是经过了这个算法,传递了一个this[$_BEGJO(359)]参数

控制台输出this[$_BEGJO(359)]

在这里插入图片描述

如果没猜错的话,这个就是真实的轨迹值了

轨迹用Python代码进行模拟,然后经过这写算法然后返回aa

  1. userresponse参数位置

    还是在这个o里面

    在这里插入图片描述

var userresponse =  H(t, i[$_CAHJS(134)])

i[$_CAHJS(134)]challenge,是34位的challenge

t是滑动距离


至此,o的参数分析完毕,其他参数可以固定

扣代码吧

在这里插入图片描述

验证通过!!!

  • 9
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值