网易易盾js逆向分析


目标url:滑动拼图验证码_拼图验证_图形验证_在线体验_网易易盾

抓包分析,先看看传递回来的参数

 

 

 

 看起来有用的就这几个包。滑动滑块故意失败,发现传回来断点data传个false,并返回tonke,成功则为true。

 失败的话还会重新传回两张图片。

这俩包就是加密的地方。

 一步步跟栈,找到了加密位置,cd打上断点进入到函数内部,看看cd是怎么来的

进去后发现传了个32然后进行加密,每次加密结果不同。

 进去后发现是随机生成一个字符串。直接扣就行。

观察代码结构,var定义了几个方法,是数组位移,下面的一个大自执行方法。直接把数组前半部分数组位移扣下来,然后把加密参数扣下来就行。

 扣的时候发现他传进的参数就是他的方法,稍微改动下

 删掉传递的俩参数还有最后一句话,并将它改为自执行方法

 return处将随机数进行加密,不管他花里胡哨的调用方法,括号里的直接删除,改为自执行方法。

 然后将用window调用下,就可以了,第一个参数cd就扣完了。

 在cd处fp参数传递过来就已经定义好了,试着搜索名字只有两处,

 再往上找发现他是以参数的形式传递回来的

 

继续搜索发现是有window定义的,到头找不下去了

 打xhr断点跟太慢,栈太多要命,直接用志远大佬的插件hook。

 

 然后发现定义了一堆var,两个异常捕获。先在var处打上断点看看,因为有try的地方很多时候都有坑,传递了错误参数。简单看下,检测了url主站,这个是随着网址变化的,new了个东西成为俩数组,时间搓版本号,版本号是不会变动的。

 ra然后将这些参数转化成字符串,并加密成个列表

 然后再加密到断点处。

 

将这个大方法复制下来,观察结构 ,发现又是这种花里胡哨的传参,里面套了三层自执行方法。加密fp的方法在最后一个,直接把把红框地方全删除了,只保留最后一个自执行方法。

找到加密处,红框的是方法是跳转,直接删除,然后return下fp的返回值;

 然后打印下fp就出来了。不过上面说的他检测的document环境,node并没有,这个值是错的。

 在第一次加密前参数形成部分,打印下,发现是{'v':'v1.1','fp':'12576832914452,12576832914452','u':'G4L1648398556075FNU','h':'not_exist_host','icp':'0002'},而浏览器给出的是"{'v':'v1.1','fp':'7764653285335,17940847925158','u':'pi816483967526431Vb','h':'dun.163.com'}",

v是版本号不变,fp是new的document的一个参数,node跟谷歌的不一样,需要改,node检测的比较厉害,不过可以直接设置为谷歌的值,多次刷新发现不会变化,定死完事。h主站网址,也需要改,可以以传参的方式加进来,比较方便灵活。还多了个icp,这个直接删除,原网址是没有的。

 修改如下,删除掉icp就好了,两个try异常检测就这么过去了,fp参数就扣完了。

 继续找到开始的地方,发现data也是定义好传过来的,往下继续跟栈,找打daata定义处,this是个轨迹经过加密后的结果,第一个var定义的方法把52个数组变成50个,第二个方法是导出token

 第三个定义的方法把px取整并进行计算。往上跟

 

 三个参数是每次的横纵坐标跟时间戳,时间搓是两个前后时间的差值,0x53e22f是token。

往上寻找轨迹,打上断点发现滑动一个像素也会断着没法进行,用fiddle替换js文件,加上这句话 console.log([Math[_0x4f4bce(0x392)](_0x4382a6[_0x4f4bce(0x64b)] < 0x0 ? 0x0 : _0x4382a6[_0x4f4bce(0x64b)]), Math['round'](_0x4382a6[_0x4f4bce(0xa8a)] - _0x4382a6[_0x4f4bce(0x1f5)]), _0x150ffb[_0x4f4bce(0x55c)]() - _0x4382a6[_0x4f4bce(0x313)]] )
                  然后打印出轨迹,多次滑动发现轨迹横差值前面最大,然后越来越趋于平和直到没有,模拟轨迹就可以了。

 data的加密函数直接抠出来就能可以,acToken也是一样,扣法跟上面的相同

  • 7
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 9
    评论
您好!要安装逆向网易易盾滑块验证,您需要按照以下步骤进行操作: 1. 在您的项目中引入网易易盾滑块验证的 JavaScript SDK。可以通过在页面的 `<head>` 标签中插入如下代码来加载 SDK: ```html <script src="//nosdn.127.net/yidun/2.17.0/yidun.js"></script> ``` 2. 在页面中设置一个用于展示滑块验证的容器元素。在合适的位置插入如下代码: ```html <div id="captcha"></div> ``` 3. 在页面中初始化滑块验证。在页面加载完成后,调用 `init` 方法进行初始化操作,并传入相关参数。示例代码如下: ```javascript window.onload = function() { var options = { captchaId: 'YOUR_CAPTCHA_ID', mode: 'popup', width: '300px', onVerify: function(err, data) { if (err) { // 验证失败,请进行相应处理 } else { // 验证成功,请进行相应处理 } } }; var nc=initNECaptcha(options, function (instance) { // 初始化成功后得到验证实例 instance,可以调用实例的方法 }, function (err) { // 初始化失败后触发该函数,例如网络错误,cdn 地址无法访问等 }); } ``` 在上述代码中,您需要将 `YOUR_CAPTCHA_ID` 替换为您在网易易盾申请的验证码 ID。此外,您还可以根据需要自定义其他参数,比如 `mode`(弹出框模式)、`width`(滑块宽度)等。 注意:为了确保安全性,强烈建议将验证请求发送到服务器进行二次校验,以防止客户端被篡改。 希望以上信息对您有所帮助!如果您有任何其他问题,请随时提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值