某盾代码js版流程分析从无感到空间点选(fp值和无感)

你只管努力,剩下的交给天意。

文章只提供学习,如有侵权请立即联系我。

前言
先声明此文章只讲流程某盾的流程分析,而且某盾的跟新快,建议学习流程。

某盾官网:官网
总体来说某盾的验证码配合js总共分为四套
【fp和无感】
【actoken及滑块】
【轨迹加密以及图标拼图ast还原】
在这里插入图片描述
打开官网第一眼就是这个样子。
在这里插入图片描述
点击看看效果都有神马值

在这里插入图片描述
没错就是这个validate在这里插入图片描述
一开始想搜一下的,想了一下,-,-不太合适,直接找来源去看看怎么回事吧。

在这里插入图片描述
在你点进来的地方打上debugger
在这里插入图片描述
清除缓存刷新再试试
在这里插入图片描述
在这里插入图片描述
卧槽,没有debugger住这是怎么回事?(如果debugger住了也不要紧过一会就debugger不到了,嘿嘿,你追不到我吧,追了就让你嘿嘿嘿)

这是是因为core这个请求每次都会变每次的时间不同,获取到的core就是是一个新的60秒一个,也就是说一分钟内你找不到这个点就GG了,那咋整?
别慌上一篇我们说了血轮眼(ast)的使用,这篇我们用替身来解决这个问题
在这里插入图片描述
那什么是替身呢–fiddler没错就是它,他不是抓包分析的吗?怎么又成替身了,因为fiddler可以拦截请求在中间做操作,那就意味着我在中间这一会会的时间可以为所欲为看下面让我们猥琐起来。

找到core的源码赋值粘贴到js文件里名字要相同。
在这里插入图片描述
添加好之后再第一行一个consol.log以便测试是否替换成功。

在这里插入图片描述

接下来,进行这几个操作。
在这里插入图片描述
然后在fiddlercat+f搜索core关键字找到我们要替换的链接在这里插入图片描述
点击要替换的链接点击add rule看看是否找到正确的了。
在这里插入图片描述
想这个样子
在这里插入图片描述
但是这样还不行,因为这个会匹配不到这个链接,去掉exact和v=xxxx,成这样就可以每次都匹配到了。
在这里插入图片描述

点击test看看是否匹配到,没问题。
在这里插入图片描述

接下来一定要点击save,save,save不然无法使用。

替换完成后,看看效果。在这里插入图片描述
在这里插入图片描述
这里说一下有很多种中间代理都可以修改并替换文件,不只是fiddler你可以使用任何软件或者chrome都可以这只是一种思路。

我们在从新从入口去看看能否看到我们想要的参数。
在这里插入图片描述
心里美滋滋
在这里插入图片描述

点击调用栈看看提交的时候都需要哪些参数,他们来源何方。
在这里插入图片描述
分析一下我们需要的参数是固定的还是需要js生成的。
在这里插入图片描述
其他能搜到的就不演示了看看token吧!
在这里插入图片描述
看完这些我们大概直到现在要找的值就是cbdata
再回到我们刚才debugger的地址
在这里插入图片描述

cb其实就是一个函数我们在本地的js里看看cb是什么,原来是32的uuid那没事了
在这里插入图片描述
那么现在就剩下那个data值了调用栈走起来,呕吼原来就是这样子的呀。在这里插入图片描述

在这里插入图片描述
s就是dom元素的信息在这里插入图片描述

j就是滑动的轨迹加时间

在这里插入图片描述
没错这就是无感的操作了在这里插入图片描述
等等,我们的token值还没获取呢,对再看看看token是如何来的。
在这里插入图片描述

token 的值大概也就能猜出来也就这一个值在变就fp其他的值都找过的。
在这里插入图片描述

直接在这里面搜索fp试试
在这里插入图片描述
在这里插入图片描述
md出现了两个?我们都打上断点试试,清除缓存
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
OK完美的hook到了,我们看到这值是来其他的函数,我们继续根据调用栈向上找。
在这里插入图片描述

我们发现第一个栈里是这样的,发现已经有fp的值了,我们继续向上找
在这里插入图片描述
在这里插入图片描述
第二个调用栈里发现试着这里赋值的,继续向上找。

在这里插入图片描述
发现在这里并没有我们想要的值,我们回到第二个调用栈在赋值那里打上断点重新hook
在这里插入图片描述

在这里插入图片描述
会发现我们的调用栈发生变法并且找到了fp的来源
在这里插入图片描述
点i这个调用函数就会发现新大陆,搜嘎,那么这个gdxidpyhxde是什么时候回给赋值到window身上的呢?
在这里插入图片描述

在这里插入图片描述
我们需要用到油猴去写一个hook脚本就hook这个gdxidpyhxde(保住头发)
在这里插入图片描述

注意:// @match https://*/* // @run-at document-start
这两个的意思分别是hook什么网站和什么时候注入,我们选择的时候https的网络全部hook,以及在生成document对象之前去代理window.gdxidpyhxde这个属性的get方法和set方法

// ==UserScript==
// @name        hookgdxidpyhxde
// @namespace    http://tampermonkey.net/
// @version      0.1
// @description  try to take over the world!
// @author       You
// @match        https://*/*
// @grant        none
// @run-at       document-start
// ==/UserScript==

(function() {
    'use strict';
    var _fp =window.fp;
    Object.defineProperty(window,'gdxidpyhxde',{
        get:function(){
            console.log("调用了fp",_fp)
            return _fp;
        },
        set:function(val){
            console.log("设置了fp",val)
            debugger;
            this._value = val;
            return val;
        }
    })
    // Your code here...
})();

在这里插入图片描述

打开刷新,清除缓存试试。
在这里插入图片描述
就会hook到这里
在这里插入图片描述
继续向下执行查看我们到底在哪里生成的fp

到这里—重点来了就是这个函数

在这里插入图片描述
第一个给赋值为空我们再次按F8执行我们就会发现,这就是我们需要找的fp,向上找发现就这这个W函数生成的fp
在这里插入图片描述
这个w函数检测了很多window属性也就是游览器指纹
第一个值是主站的地址,第二个是navigator和canvas等游览器属性生成的根据你游览器版本不一样生成的这两个值不一致可以写死,然后单独拿出来w函数去补缺失的其他函数。
在这里插入图片描述
下面看看我抠出来的函数
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述*****************重点修改**************

在这里插入图片描述
这里建议注释掉try和catch ,最后一段没并没有什么卵用直接删除掉就好了
在这里插入图片描述

在这里插入图片描述
这样我们就可以拿到正常的fp了
在这里插入图片描述

在这里插入图片描述
去测试无憾的代码试试
在这里插入图片描述

在这里插入图片描述
小彩蛋最后的最后给大家说个其实无感是不验证fp的即使为依然可以请求成功(但是滑动和点选择的验证了,而且是必经之路,有很多小伙伴都死在这了这一步fp验证不成功获取到的token和图片是无法使用的)

最后的最后相信很多朋友看到这个·chrome不一样代码版本也不一样,是因为我几个月前就写好了,后来发现一些问题然后又修改了,直到今天才发版出来但是实际的操作就是这样的没有任何问题。

鸣谢:感谢我我好大哥布哥哥以及凡哥,飞机,晚安,懒哥,夏洛,明哥七位哥哥帮助帮助。

有疑问可以加群讨论:【1147451684】

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值