当前位置: 首页 > news >正文

【验证码系列】某用平台滑块-加密流程分析rsa、base64

文章目录

  • 某用平台滑块-加密流程分析rsa、base64
    • 目标和接口
    • 1. 请求流程分析
    • 2. 请求参数分析
      • 2.1 第一步:获取验证码图片与盐值信息
      • 2.2 第二步:图像预处理与距离识别
      • 2.3 第三步:参数加密构造 (核心难点)
        • 2.3.1 加密逻辑分析
        • 2.3.2 RSA 公钥提取
      • 2.4 第四步:提交验证
    • 3. 总结

某用平台滑块-加密流程分析rsa、base64

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

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

目标和接口

**目标:**滑动拼图验证成功
接口:aHR0cHM6Ly94eGdzLmNoaW5hbnBvLm1jYS5nb3YuY24vZ3N4dC9uZXdsaXN0

1. 请求流程分析

整个验证流程分为四个步骤:

  1. 获取验证码信息接口请求
  2. 识别滑动距离本地图像识别
  3. 构建加密参数(RSA + Base64)
  4. 提交验证并获取业务数据接口请求

2. 请求参数分析

2.1 第一步:获取验证码图片与盐值信息

直接向接口c2xpZGVDYXB0Y2hh发起 GET 请求,注意携带cookie。

响应结构分析:

{"code":200,"result":{"a":"Base64String...",// 随机盐值或标识 A"b":"Base64String...",// 随机盐值或标识 B"c":{"oriImage":"Base64String...",// 背景大图"cutImage":"Base64String...",// 滑块小图"cutImageWidth":40,// 滑块宽度"xpos":0,// 初始X坐标"ypos":7// 初始Y坐标}}}

2.2 第二步:图像预处理与距离识别

前端返回的图片是 Base64格式,需要将其转换为本地图片文件,以便进行识别。

关键点:

  • oriImage是包含缺口的背景图。
  • cutImage是需要移动的滑块图。
  • 使用ddddocr方法可以自动计算滑块需要移动的距离,注意计算距离时要考虑滑块宽度的偏移量。

代码实现:

defbase64_to_image(base64_str,output_path):if","inbase64_str:base64_str=base64_str.split(",")[1]image_data=base64.b64decode(base64_str)image=Image.open(BytesIO(image_data))image.save(output_path)returnimage# 在 run 函数中调用base64_to_image(captcha_info["c"]["cutImage"],"cut_image.png")base64_to_image(captcha_info["c"]["oriImage"],"ori_image.png")# 识别距离slide_info=get_real_slide_distance("ori_image.png","cut_image.png",captcha_info["c"]["cutImageWidth"])slide_distance=slide_info["slide_distance"]

2.3 第三步:参数加密构造 (核心难点)

2.3.1 加密逻辑分析

根据全局搜索代码,分析加密逻辑如下:

  1. 参数 a:Base64( UTF8(原始a) )
    • 对接口返回的a字符串进行 UTF-8 编码,再做一次 Base64 编码。
  2. 参数 b:Base64( UTF8(原始b) )
    • 对接口返回的b字符串进行 UTF-8 编码,再做一次 Base64 编码。
  3. 参数 c:Base64( UTF8( RSA_Encrypt(滑动距离) ) )
    • Step 1: 将滑动距离(整数/字符串)转换为字符串。
    • Step 2: 使用 RSA 公钥对字符串进行加密。填充模式为PKCS1_v1_5
    • Step 3: 将加密后的二进制数据转为 Base64 字符串。
    • Step 4:注意!代码中对该 Base64 字符串又做了一次UTF8编码 -> Base64编码的处理(双重 Base64)。
2.3.2 RSA 公钥提取

从 JavaScript 源码或网络请求中可以提取到 RSA 公钥:

-----BEGIN PUBLIC KEY----- ****************替换真实公钥*************** -----END PUBLIC KEY-----

Python 实现 RSA 加密

# 构建以上真实的公钥,使用标准rsa和base64即可

2.4 第四步:提交验证

将构造好的参数发送给验证接口c2xpZGVfY2FwdGNoYV9jaGVjaw==

参数:a,b,c

如果验证成功,服务器会返回code: 200。此时,这些参数a,b,c可以用于后续的业务数据查询。

3. 总结

这个案例还是很简单了,大家快动手做起来吧!

关键参数:v: luobidamidi001

以下是运行效果演示:


感谢关注【遇事不決洛必達】!欢迎点赞收藏和交流指正,我会持续分享我的学习经验和心得。

http://www.jsqmd.com/news/997306/

相关文章:

  • 伪Anosov流与双曲3流形的几何拓扑关系
  • 解读《Effective Python 3rd Edition》:从练气到老魔(第五章 Item 36 - 39)
  • 从RDD到DataFrame:SparkSQL性能提升的秘密,就藏在这张‘表结构’里
  • 044、Edge Impulse的音频分类实战
  • 宝鸡市黄金回收白银回收铂金回收彩金回收靠谱门店TOP排行榜及联系方式地址电话+诚信店铺推荐 - 大熊猫898989
  • 德州市黄金回收白银回收铂金回收彩金回收靠谱门店TOP排行榜及联系方式地址电话+诚信店铺推荐 - 大熊猫898989
  • PyTorch工程基座:5分钟启动可复现、可调试、可部署的训练流程
  • CloakBrowser 火了:AI Agent 时代,浏览器自动化可能要换一套基础设施了
  • 扩散MRI结构连接组自动化分析工具:支持ACT纤维追踪、跨被试归一化与BIDS标准全流程
  • 避坑指南:UE5 GAS中监听GameplayEffect的常见误区与高效委托绑定方案
  • 从零构建专业天气数据爬虫:以天气网为例详解表单提交与模拟查询全流程
  • 【Springboot毕设全套源码+文档】基于springboot中小学教育辅导系统设计与实现(丰富项目+远程调试+讲解+定制)
  • Python性能优化必学:timeit模块精准基准测试实战指南
  • 保定市黄金回收白银回收铂金回收彩金回收靠谱门店TOP排行榜及联系方式地址电话+诚信店铺推荐 - 大熊猫898989
  • 2026年山东工业职业学院价格排名 - mypinpai
  • Calico网络架构图 跨主机通信原理
  • 第10篇-进阶排序-归并排序与快速排序的核心思想
  • Linphone局域网图片消息自建中转服务(lft.php轻量脚本)
  • APA佛山改装展获得UFI认证后,是不是更国际化了?
  • 聊聊天津阳光柏威的管理水平,靠谱吗 - mypinpai
  • 3588 只读根文件系统配置 overlayroot(防掉电损坏)
  • 2026年6月服务好的央国企求职辅导机构有哪些,央国企就业培训/国企笔试面试培训,央国企求职辅导公司推荐 - 品牌推荐师
  • 保山市黄金回收白银回收铂金回收彩金回收靠谱门店TOP排行榜及联系方式地址电话+诚信店铺推荐 - 大熊猫898989
  • 3.1.6 B Tree
  • 手势交互视频生成技术:基于自回归框架的创新实现
  • 从BLEST到STMS:手把手拆解MPTCP调度器,看它们如何解决‘队首阻塞’这个老大难问题
  • 综合案例 - AI 智能租房助手 [ 5 ]
  • 【花雕学编程】Arduino BLDC 之UWB与超声波融合的智能避障跟随机器人
  • 2026年6月水质五参数在线监测仪价格:十大国产品牌全维度解析与落地选型指南 - 仪表品牌榜
  • 现代C++张量收缩:从einsum到编译期优化的高性能实现