京东滑块验证逆向分析与算法还原

文章目录

  • 1. 写在前面
  • 2. 接口分析
  • 3. 断点分析
  • 4. 扣JS代码

【🏠作者主页】:吴秋霖
【💼作者介绍】:擅长爬虫与JS加密逆向分析!Python领域优质创作者、CSDN博客专家、阿里云博客专家、华为云享专家。一路走来长期坚守并致力于Python与爬虫领域研究与开发工作!
【🌟作者推荐】:对爬虫领域以及JS逆向分析感兴趣的朋友可以关注《爬虫JS逆向实战》《深耕爬虫领域》
未来作者会持续更新所用到、学到、看到的技术知识!包括但不限于:各类验证码突防、爬虫APP与JS逆向分析、RPA自动化、分布式爬虫、Python领域等相关文章

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

1. 写在前面

  滑块验证在一些平台与网站随处可见,目前外面市场爬虫招聘岗或多或少也都会要求拥有协议过滑块的能力!然而验证码解决方案提供厂商叫得上名的那几个特征都不大一样,本期分析一下某东的Web端登录滑块!

2. 接口分析

它这个流程跟之前分析极验是区别不大!这里我们需要去分析两个主要接口,先尝试性的拖动一下滑块,发个包监测一下。可以获取到两个接口,第一个g是获取图片信息的,第二个s是滑块验证的接口,如下所示:

我们先看一下获取滑块图片接口的发包参数,这里就e一个参数需要动一下,如下所示:

这个接口的响应数据中bg是背景图,patch是滑块的base64编码,可以看到还有一个参数challenge,这个我们先不管,待会在下一个接口它会使用,如下所示:

jsonp_09062181829163283({
    "patch": "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",
    "static_servers": "//ivs.jd.com/",
    "bg": "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",
    "success": "1",
    "y": 73,
    "challenge": "c82ad28bf5b943f2bd18ea44fb490967",
    "api_server": "//iv.jd.com/",
    "message": "success",
    "o": "loginname"
})

下面我们继续看下一个滑块验证的接口,参数中d是滑块的轨迹加密、c则是前面说到的图片接口返回数据内的challenge值,如下所示:

对了,还有一个参数e,在两次的接口请求中都会有。刚开始你可能不知道是哪来的,甚至会以为是算法生成的。跟某书操作一样的CK值,直接取固值即可!然后s、o、o1参数都是可以直接固,这个的话也不需要教,大家可以自行测试验证一下就会发现了

3. 断点分析

我们直接滑块拖动成功,查看一下s接口的调用堆栈,如下所示:

如上堆栈滑块相关的调用的就三个,都是同一个JS文件,挨个点击查看一下。可以看到submit进入后能够看到明显的特征,这个位置就是滑块核心点,如下所示:

我们可以在这个地方下个断点,然后触发滑块进行一下验证,如下所示:

b是轨迹,a[‘getCoordinate’]是加密方法,我们点击上面控制台函数进行跳转可以看到,如下所示:

那既然都到了这一步,等于是饭都喂到了嘴边!剩下的扣代码环境不就变得简单了嘛~

4. 扣JS代码

上面我们已经知道轨迹的加密是在哪个位置,这一步其实怎么扣?有两个方案,一个是全扣以后梳理、调试、再补再剔除!另一个就是我下面要使用的还原手法,就从这个位置开始扣,向外扩散覆盖周边!

缺什么再扣什么,少什么再还原什么!话不多说,我们先将getCoordinate这一块方法还原出来再接着分析,回到以前我文章中提到的最原始的方法,手补(你不知道就在控制台看),如下所示:

还原之后重新实现的getCoordinate方法如下所示:

function getCoordinate(a) {
    var c = new Array();
    for (var d = 0; d < a.ldngth; d++) {
        if (d == 0) { 
            c.push(pretreatment(a[d][0] < 262143 ? a[d][0] : 262143, 3, true));
            c.push(pretreatment(a[d][1] < 16777215 ? a[d][1] : 16777215, 4, true));
            c.push(pretreatment(a[d][2] < 4398046511103 ? a[d][2] : 4398046511103, 7, true))
        } else {
            var a = a[d][0] - a[d - 1][0];
            var f = a[d][1] - a[d - 1][1];
            var d = a[d][2] - a[d - 1][2];
            c.push(pretreatment(a < 4095 ? a : 4095, 2, false));
            c.push(pretreatment(f < 4095 ? f : 4095, 2, false));
            c.push(pretreatment(d < 16777215 ? d : 16777215, 4, true))
        }    
    }    
    return c.join("")
}

这里还原之后,我们仔细看上面方法内pretreatment,在哪?找找看,把它扣出来给补上!这都不需要去找,就在上面,如下所示:

还原一下pretreatment的方法,代码如下所示:

function pretreatment(a, b, c) { 
    var e = string10to64(Math.abs(a));
    var f = "";
    if (!c) {
        f += (a > 0 ? "1" : "0") 
    }    
    f += prefixInteger(e, b);
    return f
}

再看pretreatment方法内,有一个string10to64prefixInteger的方法调用,根据上面还原的思路,去还原它们,如下所示:

接着还原一下string10to64方法的代码,如下所示:

function string10to64(a) {
    var b = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ-~".split("")
      , c = b.length
      , d = + a
      , e = [];
    do {
        mod = d % c;
        d = (d - mod) / c;
        e.unshift(b[mod])
    } while (d);
    return e.join("")
}

prefixInteger方法代码还原如下:

function prefixInteger(a, b) { 
    return (Array(b).join(0) + a).slice(-b)
}

最后就到了最重要的环节了,生成滑块的轨迹!然后调用getCoordinate进行加密即可!轨迹这里就不贴了,太长了~有需要完整代码与轨迹的小伙伴可以联系作者获取进行学习!

至此!整个请求的流程是分两步的,先获取到g接口下的图片信息数据,然后把响应的某些参数提取出来!然后OCR识别BG生成滑块的位置数组(即目标滑块区域的坐标),然后调用轨迹加密算法,得到加密轨迹!最后携带参数提交s接口进行验证

说了这么多,我们看一下最终的测试效果,如下图所示:

版权声明:本文为博主作者:吴秋霖原创文章,版权归属原作者,如果侵权,请联系我们删除!

原文链接:https://blog.csdn.net/qiulin_wu/article/details/137401841

共计人评分,平均

到目前为止还没有投票!成为第一位评论此文章。

(0)
乘风的头像乘风管理团队
上一篇 2024年4月16日
下一篇 2024年4月16日

相关推荐