【验证码逆向专栏】某里 v2 滑动验证码分析

0

声明

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

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

前言

最近有粉丝反馈,在处理业务网站的时候,碰到了某里的验证码,但是又和大伙所熟知的 226、227 不一样:

1

其实这是某里 v2 验证码,相较于 228、231 这种旗舰产品,之前使用 v2 的网站并不是很多,不过最近有多起来的趋势。

部分小伙伴可能看到了某里系的验证码,就认为解决不了,直接放弃,其实都没有那么复杂,不说全纯算还原,至少补环境是可以尝试一下的。v2 验证码有很多类型,滑动的版本变动最频繁,1.1.0 一直到现在的 1.1.10,再过两天可能又是新的,解决流程其实都大差不差,本文就逆向分析一下某里 v2 滑动验证码,仅供参考:

2

逆向目标

  • 目标:某里 v2 滑动验证码
  • 网址:想要研究的小伙伴,私聊

抓包分析

本案例的网站,不停地点下一页就会触发验证码,也可以直接访问我前文给到的网址(如果响应 HTTP Status 405 – Method Not Allowed 就是指纹黑了)。queryPage 接口正常会返回公告相关数据,触发了验证码,响应内容就会提示需要验证:

3

主要需要关注四个接口,前后请求了两次 4e778xxx.captcha-pro-open.aliyuncs.com(提交的参数不同)接口,第一次获取 DeviceConfig、RequestId 参数,用于后续验证,StaticPath 即版本号。请求参数中有个 SignatureMethod,值为 HMAC-SHA1,这着就像是有啥参数是经过这个算法加密的:

4

  • AccessKeyId:固定值,不同接口不一样;
  • UserUserId、UserId、UserCertifyId:queryPage 接口触发验证码时,响应返回;
  • DeviceData:设备信息;
  • SignatureNonce:类 UUID,后文分析;
  • Signature:对相关请求参数进行加密、编码,后文分析。

第二次请求,即最终的验证码校验,获取校验结果及相关参数:

5

  • CertifyId:queryPage 接口触发验证码时,响应返回,即 traceid;
  • CaptchaVerifyParam:一些校验参数,包括各种环境、指纹、轨迹等等,后文分析。

验证失败,VerifyCode 为 F001、F002:

6

验证成功,VerifyCode 为 T001:

7

中间请求了两次 device.captcha-open.aliyuncs.com(Log2、Log3)接口,进行设备、轨迹验证(该站校验了 Log2),Data 参数经过加密处理,后文分析:

8

v2 接入文档:https://help.aliyun.com/zh/captcha/captcha2-0/user-guide/server-integration?spm=a2c4g.11186623.help-menu-28308.d_1_2_1.28cf202bFKiHQi

逆向分析

SignatureNonce

触发验证码,抓包后会看到,第一个接口 4e778fxxx.aliyuncs.com 是 xhr 类型的,直接去源代码(Sources)中下个 xhr 断点,刷新网页重新触发验证码即会断住。此时请求参数都已经生成了:

9

接着向上跟栈,跟到 AliyunCaptcha.js 文件中(有几套,可以固定一下),下图即 SignatureNonce 的加密位置,跟进到 t[M(i)] 中,将算法扣下来即可:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值