【2024-01-15】某安居客验证码分析-滑块验证码

声明:该专栏涉及的所有案例均为学习使用,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关!如有侵权,请私信联系本人删帖!

文章目录

  • 一、抓包分析
  • 二、参数分析
    • 1.请求getInfoTp
    • 2.校验checkInfoTp

一、抓包分析

【2024-01-15】某安居客验证码分析-滑块验证码_第1张图片

网址:

aHR0cHM6Ly9hcGkuYW5qdWtlLmNvbS93ZWIvZ2VuZXJhbC9jYXB0Y2hhTmV3Lmh0bWw=

1.刷新图片,getInfoTp为获取验证码
【2024-01-15】某安居客验证码分析-滑块验证码_第2张图片
包含参数

  • sessionId
  • dInfo

【2024-01-15】某安居客验证码分析-滑块验证码_第3张图片
返回内容:

  • info:盲猜包含图片的一些地址等信息
  • responseId

2.滑动图片 checkInfoTp
【2024-01-15】某安居客验证码分析-滑块验证码_第4张图片
参数:

  • sessionId:刚才请求携带的
  • respinseId: 刚才返回的
  • dinfo:刚才请求携带的
  • data: 盲猜包含轨迹的信息

如果成功通过:
【2024-01-15】某安居客验证码分析-滑块验证码_第5张图片

二、参数分析

1.请求getInfoTp

这里我们需要分析sessionId和dInfo的生成,并且对返回的info进行解密

sessionId
全局搜索,发现是源码中的定值
【2024-01-15】某安居客验证码分析-滑块验证码_第6张图片

dInfo

全局搜索,然后滑动滑块断住
【2024-01-15】某安居客验证码分析-滑块验证码_第7张图片
分析这个dInfo值,每次生成是定值,不会随机,再看到具体的组成:

  • _taN是一些浏览器的定值
  • 有AES的字眼,可能是AES加密

【2024-01-15】某安居客验证码分析-滑块验证码_第8张图片
跟进去,可以看到确实是AES,key和iv都是sessionId, CBC模式,pck7
【2024-01-15】某安居客验证码分析-滑块验证码_第9张图片我们看到这个key和iv是同一个值,而且iv和sessionid有点熟悉

f400b28a27a5444aa982665117819c74
402a754a926171c4

跟栈后发现是sessionId字符串的单数下标字符拼接而成,即sessionId[1]、sessionId[3]…

那么用python还原一下
【2024-01-15】某安居客验证码分析-滑块验证码_第10张图片

在这里插入图片描述
解密Info

估计也是AES解密,试一下

【2024-01-15】某安居客验证码分析-滑块验证码_第11张图片
然后下载出图片,使用dddd_ocr算出距离
【2024-01-15】某安居客验证码分析-滑块验证码_第12张图片
然后别忘了缩放 true_distance = (280 / 480) * distance

2.校验checkInfoTp

该页面只需要看data参数,按刚才套路应该还是AES加密,然后包含轨迹信息

info在刚才参数的下边,往上跟一下
【2024-01-15】某安居客验证码分析-滑块验证码_第13张图片
这里看到就是AES加密,key和iv还是sessionId的单数值组合,然后_Ug0包含track和x

【2024-01-15】某安居客验证码分析-滑块验证码_第14张图片
往上边拉拉代码看到这里,跟一下发现:

  • x是水平滑动距离
  • track轨迹里分别为x,y,时间间隔
  • p为定制

那么我们伪造一个轨迹就可以了。我这里还是完整手动滑一遍,然后根据距离取就行。

试一下最终结果:
【2024-01-15】某安居客验证码分析-滑块验证码_第15张图片

你可能感兴趣的:(python,爬虫,js逆向)