案例-某验四代滑块反爬逆向研究一

系列文章目录

第一部分 案例-某验四代滑块反爬逆向研究一
第二部分 案例-某验四代滑块反爬逆向研究二


文章目录

  • 系列文章目录
  • 前言
  • 一、分析流程
  • 二、定位 w 值生成位置
  • 三、device_id 值的定位生成
  • 四、pow_msg 值 和 pow_sign 值的生成
  • 五、其他参数的位置
  • 五、 其他
  • 总结


前言

本文章中所有内容仅供学习交流使用,不用于其他任何目的,不提供完整代码,抓包内容、敏感网址、数据接口等均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关!

本文章未经许可禁止转载,禁止任何修改后二次传播,擅自使用本文讲解的技术而导致的任何意外,作者均不负责,若有侵权,请联系作者立即删除!
网址: aHR0cHM6Ly93d3cuZ2VldGVzdC5jb20vYWRhcHRpdmUtY2FwdGNoYS1kZW1v


一、分析流程

  1. 获取captchaId
    在这里插入图片描述
  2. 生成challenge,就是一个随机值,自己生成就好
    案例-某验四代滑块反爬逆向研究一_第1张图片
  3. 获取背景图片及滑块图片链接,然后识别滑块距离
    案例-某验四代滑块反爬逆向研究一_第2张图片
    4.滑动滑块,验证是否滑动成功;参数中w值需要扣,其他的值再上一个请求返回中已经存在了
    案例-某验四代滑块反爬逆向研究一_第3张图片
    在这里插入图片描述

二、定位 w 值生成位置

  1. 进入js中,由于里面的变量名是 unicode 混淆了, 所以查找 w的unicode值 ==> “\u0077”案例-某验四代滑块反爬逆向研究一_第4张图片
    案例-某验四代滑块反爬逆向研究一_第5张图片
    案例-某验四代滑块反爬逆向研究一_第6张图片

由上图可以看出,w值的生成还需要找到 device_id, pow_msg, pow_sign,userresponse 四个值
setLeft 是滑动距离, passtime 是滑动时间,
其他的值是固定值或上个请求返回的响应中的值

三、device_id 值的定位生成

device_id 的值其实是不变的,但是寻找一下他的生成位置
案例-某验四代滑块反爬逆向研究一_第7张图片

四、pow_msg 值 和 pow_sign 值的生成

案例-某验四代滑块反爬逆向研究一_第8张图片

五、其他参数的位置

案例-某验四代滑块反爬逆向研究一_第9张图片
案例-某验四代滑块反爬逆向研究一_第10张图片

五、 其他

通过挂载代理的方式,可以发现,他只取了 s 的options 中的 pt, 所以只需要补 {“options”:{“pt”: “1”}} 即可 ;
并未校验滑动轨迹
案例-某验四代滑块反爬逆向研究一_第11张图片
挂载代理的代码

better_proxy = function (o, callerName){
    return new Proxy(o, {
        set(target, property, value){
            console.table([{"类型":"set-->","调用者":callerName,"属性":property,"值":value}]);
            return Reflect.set(...arguments);
        },
        get(target, property, receiver){
            console.table([{"类型":"get<--","调用者":callerName,"属性":property,"值":target[property]}]);
            return Reflect.get(...arguments);
        },
    }
    );
}

总结

四代比较简单,背景图片也没有打乱,加密位置也比较好找,也没有校验滑动轨迹

你可能感兴趣的:(爬虫)