【验证码逆向专栏】某验三代、四代一键通过模式逆向分析

【验证码逆向专栏】某验三代、四代一键通过模式逆向分析

声明

本文章中所有内容仅供学习交流,抓包内容、敏感网址、数据接口均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关,若有侵权,请联系我立即删除!

本文章未经许可禁止转载,禁止任何修改后二次传播,擅自使用本文讲解的技术而导致的任何意外,作者均不负责,若有侵权,请在公众号【K哥爬虫】联系作者立即删除!

逆向目标

  • 目标:某验三代、四代一键通过模式(无感验证)逆向分析
  • 三代主页:aHR0cHM6Ly93d3cuZ2VldGVzdC5jb20vZGVtby9mdWxscGFnZS5odG1s
  • 四代主页:aHR0cHM6Ly9ndDQuZ2VldGVzdC5jb20v

通讯流程

接口相关:

01

完整流程:

02

三代抓包情况

register-fullpage 会返回 challengegt 值,后期有用到。

03

get.php 会返回 cs,同样后期会用到,这个请求同样需要 w 值,在某验的点选滑块里,这个请求可以不要 w 值,但在三代无感里,必须得要,不然最后是会验证失败的,可能不带 w 请求,返回的 s 是个假的值,导致最后验证失败。

04

ajax.php 验证是否成功,同样需要 w 值,成功则会返回一个 validate

05

三代逆向分析

第一个 w 值

相信看过K哥以前滑块、点选的文章,对于定位 w 的值很熟练了,这里也是类似的,"\u0077" 就是 "w",其值为 i + r,如下图所示:

06

主要就是 r、o、i 的值,关键代码:

var r = t[$_CFAGw(1326)]()
  , o = $_BFx()[$_CFAGw(1367)](pe[$_CFAFP(416)](t[$_CFAGw(353)]), t[$_CFAGw(1393)]())
  , i = O[$_CFAGw(1375)](o)

先看看 r,跟进去就是我们熟悉的 RSA 了,和以前的处理一样,把代码扣下来或者用库都行。

07

同样需要注意的是上图中 this[$_CHCFe(1393)]() 也是个随机字符串,会遇到多次,但整体一次验证下来都是相同的值,不然验证会失败,点选、滑块等一系列都一样的。

08

09

然后是 o 的值,这里和以前一样,跟进去看仍然是 AES 加密。 t[$_CFAGw(1393)]() 依旧是随机字符串。

10

中间这一串 pe[$_CFAFP(416)](t[$_CFAGw(353)]),也没啥特别的,除了 gtchallenge,其他都是定值,最后面那一串 i 的值,实测写死、置空都行。

11

然后继续跟进 i,把前面 o 的值转换成一个大的字符串,这里也不是很复杂,直接扣代码即可:

12

13

然后 i + r 就是 w 的值了,到这里第一个 w 的值就搞完了。

第二个 w 值

第二个 w 的值和以往的地方都不太一样,不过通过跟栈的方式也很容易找到,来到有个 var n = {}; 的地方,如下图所示:

14

t[$_CGABi(1436)] 就是 w 值,也就是 t['$_CEDO'],前面定义了 var t = this,经过第 8215 行的 t[$_CGAAX(1462)]() 之后,就有了 w 的值,所以要跟进去重点看这一行。

15

如上图所示,e、t、n、r 中涉及到一些浏览器环境值的计算,当然还有鼠标移动等相关数据的计算,如下图所示:

16

而实际测试发现这四个值直接置空也可以,在本例中可以,不知道是否有其他案例校验更加严格,知道的朋友可以在评论区提出来,再往下,会遇到很多给变量赋值的地方,如下图所示,G 是 MD5 方法,中间的 O[$_CGBFp(948)] 和以前类似,返回一个对象中的 resend 相加,这里就不再赘述了。

17

i[$_CGBGa(1415)] 这里就是将每个变量和值挨个相加,组成一个大的字符串。

18

然后到 r 这里,就多了一个 captcha_token,然后用 {} 将所有数据包了起来。

19

这些数据我们格式化一下,大致结构如下图所示:

20

其中 ep 里面的 venren 是显卡相关信息,fplp 是取了两个鼠标移动的位置信息,直接写死为 null 也可以,tm 就是 window.performance.timing 的一些东西,自己随便伪造一下就行了。

最后一步 i[$_CGDBA(1436)],随机字符串为 key,将前面的数据 r 进行 AES 加密,得到我们最终的 w 值,如下图所示:

21

三代结果验证

22

四代抓包情况

load 接口返回值如下:

23

  • captcha_type:验证码类型,无感为 ai

  • gct_path:gct4 文件路径

  • lot_number:生成 pow_msg、w 的关键参数

  • payload:verify 请求参数

  • datetime:ISO 8601 扩展格式的日期,生成 pow_msg 的关键参数

  • process_token:verify 请求参数

verify 接口返回值如下:

24

  • captcha_id:验证码 id
  • captcha_output:login 请求参数
  • gen_time:login 请求参数
  • lot_number:login 请求参数
  • pass_token:login 请求参数

login 接口验证登录成功:

25

四代逆向分析

w 参数

与三代无感一样,四代无感 w 参数同样直接搜索 "\u0077" 即可定位到,r 为 w 参数的值:

26

r 参数定义在第 6237 行,内容如下:

(0,d[$_CBHHO(84)])(f[$_CBHIE(84)][$_CBHHO(562)](e), i)
d["default"])(f["default"]["stringify"](e), i)

由上可知,r 是将 i 参数和转为字符串的 e 参数加密得到的,跟进到 d[$_CBHHO(84)] 中,加密函数定义在第 11669 行,在第 11707 行打下断在,返回值为 r 参数的值,即 w 值:

27

(0,d[$_DIEHS(177)])(c) + u
d["arrayToHex")(c) + u

这里是将 c 数组转换成了十六进制的字符串然后加上 u 得到的 r 值,d[$_DIEHS(177)] 跟进去直接扣出来即可,c 定义在第 11705 行:

var c = s[a][$_DIEIq(1403)][$_DIEHS(1498)](e, i);
var c = s[1]["symmetrical"]["encrypt"](e, i);

e 后文分析,i 为 16 位字符串:

28

i 定义在第 11702 行,跟进到 d[$_DIEIq(103)] 方法中,i 为 16 位随机数:

29

e 参数内容如下:

30

device_idlot_numberload 接口返回,pow_msg"1|0|md5|" + datetime + "|" + captcha_id + "|" + lot_number + "||" + 16位随机数pow_msg 经过 MD5 加密即为 pow_sign"l0zs":"53502544" 为动态变化的键值对,在往期四代滑块的文章中均有详细介绍,接下来跟进到 s[a][$_DIEIq(1403)][$_DIEHS(1498)] 中,c 为 AES 加密,扣代码或者直接引库:

31

u 定义在第 11704 行,i 为十六位随机字符串:

u = new l[($_DIEHS(84))]()[$_DIEIq(1498)](i);
u = new l["default"]()["encrypt"](i);

跟进到加密函数 l[($_DIEHS(84))] 中,在第 12725 行,于 12741 行打下断点,可以看到这里就是个 RSA 加密,扣代码或者直接引库即可:

32

四代结果验证

33
【验证码逆向专栏】某验三代、四代一键通过模式逆向分析

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:【验证码逆向专栏】某验三代、四代一键通过模式逆向分析 - Python技术站

(0)
上一篇 2023年3月31日
下一篇 2023年3月31日

相关文章

  • 【APP 逆向百例】Frida 初体验,root 检测与加密字符串定位

    声明 本文章中所有内容仅供学习交流使用,不用于其他任何目的,不提供完整代码,抓包内容、敏感网址、数据接口等均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关! 本文章未经许可禁止转载,禁止任何修改后二次传播,擅自使用本文讲解的技术而导致的任何意外,作者均不负责,若有侵权,请在公众号【K哥爬虫】联系作者立即删除! 逆向目标 设备:G…

    2023年4月2日
    00
  • 【k哥爬虫普法】爬虫第一案,侵犯个人隐私,“入侵”短视频服务器!

    我国目前并未出台专门针对网络爬虫技术的法律规范,但在司法实践中,相关判决已屡见不鲜,K 哥特设了“K哥爬虫普法”专栏,本栏目通过对真实案例的分析,旨在提高广大爬虫工程师的法律意识,知晓如何合法合规利用爬虫技术,警钟长鸣,做一个守法、护法、有原则的技术人员。 案情介绍 江苏省无锡市梁溪区人民法院审结了一起提供侵入计算机信息系统程序罪案件,也就是网上传遍的“首例…

    2023年4月2日
    00
  • 【k哥爬虫普法】爬取数据是否一定构成不正当竞争?

    我国目前并未出台专门针对网络爬虫技术的法律规范,但在司法实践中,相关判决已屡见不鲜,K 哥特设了“K哥爬虫普法”专栏,本栏目通过对真实案例的分析,旨在提高广大爬虫工程师的法律意识,知晓如何合法合规利用爬虫技术,警钟长鸣,做一个守法、护法、有原则的技术人员。 案情介绍 谷米公司为开发和运营“酷米客”APP(提供实时公交查询服务),与公交公司达成合作,在公交车上…

    2023年4月2日
    00
  • 【k哥爬虫普法】简历大数据公司被查封,个人隐私是红线!

    我国目前并未出台专门针对网络爬虫技术的法律规范,但在司法实践中,相关判决已屡见不鲜,K 哥特设了“K哥爬虫普法”专栏,本栏目通过对真实案例的分析,旨在提高广大爬虫工程师的法律意识,知晓如何合法合规利用爬虫技术,警钟长鸣,做一个守法、护法、有原则的技术人员。 案情介绍 2018年10月,北京市公安局海淀分局警务支援大队接到辖区某互联网公司报案称,发现有人在互联…

    2023年4月2日
    00
  • 【验证码逆向专栏】某片滑块、点选验证码逆向分析

    声明 本文章中所有内容仅供学习交流使用,不用于其他任何目的,不提供完整代码,抓包内容、敏感网址、数据接口等均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关! 本文章未经许可禁止转载,禁止任何修改后二次传播,擅自使用本文讲解的技术而导致的任何意外,作者均不负责,若有侵权,请在公众号【K哥爬虫】联系作者立即删除! 逆向目标 目标:某…

    2023年4月2日
    00
  • 【验证码逆向专栏】安某客滑块逆向

    声明 本文章中所有内容仅供学习交流使用,不用于其他任何目的,不提供完整代码,抓包内容、敏感网址、数据接口等均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关! 本文章未经许可禁止转载,禁止任何修改后二次传播,擅自使用本文讲解的技术而导致的任何意外,作者均不负责,若有侵权,请在公众号【K哥爬虫】联系作者立即删除! 逆向目标 目标:安…

    2023年4月2日
    00
  • 【JS 逆向百例】猿人学系列 web 比赛第五题:js 混淆 – 乱码增强,详细剖析

    逆向目标 猿人学 – 反混淆刷题平台 Web 第五题:js 混淆,乱码增强 目标:抓取全部 5 页直播间热度,计算前 5 名直播间热度的加和 主页:https://match.yuanrenxue.com/match/5 接口:https://match.yuanrenxue.com/api/match/5?m=XXX&f=XXX 逆向参数: url…

    2023年4月2日
    00
  • 【0基础学爬虫】爬虫基础之自动化工具 Pyppeteer 的使用

    大数据时代,各行各业对数据采集的需求日益增多,网络爬虫的运用也更为广泛,越来越多的人开始学习网络爬虫这项技术,K哥爬虫此前已经推出不少爬虫进阶、逆向相关文章,为实现从易到难全方位覆盖,特设【0基础学爬虫】专栏,帮助小白快速入门爬虫,本期为自动化工具 Pyppeteer 的使用。 概述 前两期文章中已经介绍到了 Selenium 与 Playwright 的使…

    python 2023年5月9日
    00
合作推广
合作推广
分享本页
返回顶部