安居客滑块js逆向 - 逻辑详解

2023-11-14

注:本篇博客仅供学习使用,请勿用做其他商业用途,如有侵权,请联系本菜鸟

本菜鸟在最近的学习过程中又遇到了一个带有滑块的验证码,觉得有点意思,所以写这篇博客记录一下,对比而言,难度比某验和某盾的简单一丢丢
目标网址:aHR0cHM6Ly93d3cuYW5qdWtlLmNvbS9jYXB0Y2hhLXZlcmlmeS8/aGlzdG9yeT1hSFIwY0hNNkx5OWlhVzU2YUc5MUxtRnVhblZyWlM1amIyMHZZMjl0YlhWdWFYUjVMejltY205dFBXVnpabDlzYVhOMCZuYW1lc3BhY2U9YW5qdWtlX3hpYW9xdV9wYyZzZXJpYWxJRD0yN2U5MDU1NGNhZDI1NGMyOGEwZjgwMTk1MzY5NzYwZF83YmFmMjZhODRlNTU0YTkyYmY5MzI1ODdlNDNkNmU1NCZjYWxsYmFjaz1zaGllbGQmZnJvbT1hbnRpc3BhbQ==
验证码是这个样子的:
在这里插入图片描述
不啰嗦,咱们直接分析流行
1.请求html页面,返回一个sessionId,这个值在后面起到了很大的作用
在这里插入图片描述
2.获取到图片信息
在这里插入图片描述
在这里插入图片描述
注:这里其实可以不用管这个info的加密参数,因为这其中包含的图片地址我们可以通过responseId直接拼接出来
3.提交验证信息
在这里插入图片描述
总体的逻辑就这三步,下面主要分析加密逻辑
1.搜索dInfo,跟进f i()l[_0x8co[7]]["AESEncrypt"] 由此行代码可看出dIfno参数是由一些固定的值(url、useragent等)通过AES加密得到
在这里插入图片描述
在这里插入图片描述
2.进入具体的加密逻辑获取到CBC模式加密所需的key和iv值

iv:sessionId字符串的单数下标字符拼接而成,key和iv相同

在这里插入图片描述
所以dInfo是由固定值 + sessionId中获取到的key和iv通过AES CBC 加密得到,此处的AES加密可以用python代码直接完成加密,也可以用第二种方法:
这是一个典型的webpack,其中funtion h(t)为webpack的加载器,所以我们也可以按照webpack的扣取方式将程序的加密逻辑扣取出来,如果不知道webpack是啥东西的 可以移步这篇文章学习学习
在这里插入图片描述
3.data参数加密逻辑
处理缺口的时候需要注意的是:原始图片的大小为480 × 270 px而浏览器渲染的大小是280 × 158 px所以我们需要用from PIL import Image 这个模块对图片进行缩放处理再进行缺口识别
在这里插入图片描述
直接搜索track定位到轨迹加密的地方,值得注意的的是这里的轨迹检测的不严格,我们可以伪造一个轨迹,通过"|"间隔每次的移动数据,第一位是x,第二位是y,第三位是时间间隔
在这里插入图片描述
在这里插入图片描述
总结data参数的加密方式和前面的dInfo参数一样用的AES CBC 加密的,区别就在于一个用的轨迹和缺口数据一个用的固定值
最后看看运行截图:
在这里插入图片描述
好了,此篇博客到此结束
写在最后:请勿将本篇内容用于商业用途,如有疑问请联系本小菜鸟

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

安居客滑块js逆向 - 逻辑详解 的相关文章

随机推荐

  • JAVA 写Excel附件 每天定时发送邮件

    JAVA 写Excel附件 每天定时发送邮件 http hi baidu com star850323 blog item 63c5750f520e05ec37d1228d html http hi baidu com star850323
  • HBuilderX 最新安装使用教程,附详细图解,持续更新

    HBuilderX 安装使用教程 HBuilderX是HBuilder的升级版 它是是DCloud 数字天堂 推出为前端开发者服务的通用IDE 或者称为编辑器 HBuilderX的功能从下图可以直观的了解个大概 官网地址 https ask
  • Java基础总结之各个模块重要知识点

    一 对象模块 一 初始化 1 对this super 构造函数 构造代码块 静态代码块总结 this 代表当前对象 也就是所在函数所属对象的引用 this对象后面加 调用的是对象的成员变量和方法 this say this对象后面加 调用的
  • 毕业设计-基于机器视觉的甘蔗茎秆识别方法-OpenCV

    目录 前言 课题背景和意义 实现技术思路 一 总体思路 二 图像处理 三 甘蔗识别 四 结 语 实现效果图样例 最后 前言 大四是整个大学期间最忙碌的时光 一边要忙着备考或实习为毕业后面临的就业升学做准备 一边要为毕业设计耗费大量精力 近几
  • OpenCV中的图像处理

    颜色空间转换 1 基本读写操作 import cv2 import numpy as np img cv2 imread MyPic png cv2 IMREAD GRAYSCALE print img shape cv2 imwrite
  • winusb —— 不再为你的usb设备编写驱动

    blog csdn net lanmanck 曾几何时我们找工作还发现有个驱动工程师职位 月薪也不低 没接触过的人代码压根看不懂 今天可好了 如果不太追求差异化 不用驱动也能让系统与USB设备通信了 Linux就不说了 libusb很好用
  • nginx服务器启动、停止、重启

    启动nginx nginx c path to nginx conf 关闭nginx nginx s stop 快速停止nginx quit 完整有序的停止nginx 重启nginx nginx s reload 修改配置后重新加载生效 n
  • org.springframework.validation.BindException: org.springframework.

    错误信息 org springframework validation BindException org springframework validation BeanPropertyBindingResult 2 errors Fiel
  • Vue实现在页面上添加返回顶部按钮(按钮固定在页面右下角)

    从网站上下载按钮图片 我在图精灵上下载图片到项目src文件夹下的assets文件夹 并命名为topButton png 可以用本地的图片编辑软件 如画图 将按钮图片设置为像素50 50 在App vue文件夹下引入图片 为click事件设置
  • Linux内存宏,linux内核驱动宏定义

    宏符号linux内核中绝大多数初始化函数和变量都利用了各式各样的宏符号 形如 static int init pci porc init void static char version devinitdata drv name modul
  • Eclipse ADT中的logcat不显示解决方法

    1 在Eclipse界面中找到DDMS 然后找到device选项卡 在这个选项卡中选择reset adb 如果不行尝试方法2 2 不用关闭eclipse和模拟器 在Android SDK的tools目录下有个 ddms bat 批处理文件
  • index_join:

    index join index join顾名思义是对index进行关联 oracle通过hash index join的方式实现了避免对表的访问 所有的数据都从索引中直接获得 它不受查询条件影响 可以是唯一索引 也可以是多列索引 SELE
  • [Unity2D/3D]Particle System粒子系统/以实现烟雾效果为例

    Unity3D Particle System粒子系统 首先看一下效果 1 创建一个Particle System 右键Effects gt Particle System Pause暂停播放粒子效果 Restart重新播放粒子系统 Sto
  • Direct3D轮回:游戏特效之全屏泛光(Bloom)

    https www cnblogs com kenkao archive 2011 08 25 2153752 html Bloom 又称 全屏泛光 是大名鼎鼎的虚幻3游戏引擎中最通用的后期特效技术 Bloom特效的实现主要依赖于PostP
  • 用实例给新手讲解RSA加密算法

    http www cfca com cn zhishi wz 012 htm 用实例给新手讲解RSA加密算法 图为 RSA公开密钥算法的发明人 从左到右Ron Rivest Adi Shamir Leonard Adleman 照片摄于19
  • SpringMVC 框架详解

    目录 1 什么是 Spring MVC 1 1 什么是MVC 1 2 MVC 和 Spring MVC 的关系 2 第一个SpringMVC程序 2 1 RequestMapping 注解 2 2 ResponseBody 注解 2 3 g
  • opencv函数:flip函数

    flip函数是矩阵或者图像翻转 其实图像的本质也是矩阵 void flip InputArray src OutputArray dst int flipCode 参数 src 输入矩阵 dst 翻转后矩阵 类型与src一致 flipCod
  • CTS Failed 项解决

    CTS Failed 项解决 CtsWindowManagerDeviceTestCases Test android server wm MultiDisplaySystemDecorationTests testLaunchSecond
  • idea连接数据库实现增删改查

    连接数据库 在application properties中编写代码实现数据库连接 创建Student类 编写插入到数据库里的信息 id name等 并创建set get tostring方法 创建接口 创建StudentImp类实现Stu
  • 安居客滑块js逆向 - 逻辑详解

    注 本篇博客仅供学习使用 请勿用做其他商业用途 如有侵权 请联系本菜鸟 本菜鸟在最近的学习过程中又遇到了一个带有滑块的验证码 觉得有点意思 所以写这篇博客记录一下 对比而言 难度比某验和某盾的简单一丢丢 目标网址 aHR0cHM6Ly93d