爬虫逆向实战(41)-某巢登陆(AES、MD5、RSA、滑块验证码)

一、数据接口分析

主页地址:某巢

1、抓包

通过抓包可以发现在登录时,网站首先请求captcha/querySlideImage/来获取滑块验证码的图片,然后请求captcha/checkCode/接口来验证滑块验证码。滑块验证码校验成功后,请求noshiro/getPublicKey来获取PublicKey,然后发送/passport/login请求来登录。
在这里插入图片描述

2、判断是否有加密参数

2.1、请求参数是否加密?

(1)querySlideImage
这个接口是用来获取滑块验证码的,虽然这个接口不携带参数,但是这个接口的路径中包含了一个随机加密值(下文简称为img_url_code)。
在这里插入图片描述
(2)checkCode
这个接口是用来校验滑块验证码的,同样路径中也有img_url_code,但是可以发现此处的img_url_code与querySlideImage接口请求图片时携带的一致。同时,这个接口还携带了参数(下文简称为img_params)。
在这里插入图片描述
(3)login
此接口是登录接口,通过查看“载荷”可以发现,此接口有两个加密参数passwordverifyCode,其中verifyCode参数是滑块验证码校验成功后接口返回的,所以不需要关心。
在这里插入图片描述
2. 请求头是否加密?

3. 响应是否加密?

4. cookie是否加密?

二、加密位置定位

1、img_url_code

通过添加XHR断点,然后点击“登录”按钮获取滑块验证码,断点断到之后,进行跟栈。然后就可以发现img_url_code的生成位置。
在这里插入图片描述

2、img_params

因为这个请求参数,是一整个加密字符串,所以我们可以通过hookJSON.stringify。运行hook代码后,滑动滑块验证码,发现可以断到,然后进行跟栈,可以发现加密位置。可以发现网站是在此处对传入的参数中的data使用JSON转换为字符串,然后进行加密,且此处类似于AES的ECB模式加密。
在这里插入图片描述
再次向上跟栈,可以发现上述的方法的传参中有三个属性signtrackaesKey。其中track可以看出来就是滑动滑块时的轨迹,aesKey是在获取滑块验证码的接口响应中,sign的生成就在函数调用的上方。
在这里插入图片描述

3、password

通过查看启动器,然后点击submitFn进入,可以发现加密位置。
在这里插入图片描述
在这里插入图片描述

三、扣代码大致思路

1、第一步

先将img_url_code的生成方法扣出,此方法就是一个生成随机字符串的方法。然后将img_url_code拼接在路径上,发送请求获取滑块验证码。

2、第二步

拿到滑块验证码的响应后,除了两个图片的路径需要保存以外,路径中的img_url_code以及响应中的checkIdclientIpkeypointY也需要保存。
在这里插入图片描述

3、第三步

请求滑块验证码的图片,并获取到缺口的x值,然后结合pointY生成一组轨迹列表,然后生成sign
通过观察就可以发现,sign的生成是将clientIpcheckIdimg_url_code以及轨迹列表进行相加,然后使用MD5进行加密生成sign
在这里插入图片描述

3、第四步

将上一步生成的data使用JSON转成字符串,然后使用aesKey进行AES的ECB模式加密。
在这里插入图片描述

4、第五步

滑块验证码验证成功之后,就可以请求getPublicKey接口,获取PublicKey,然后将密码进行RSA加密,加密之后请求login接口即可。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/762518.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

高性能LDO电路设计,有配套文档

内容: 1、电路文件(有仿真状态)和PDK(TSMC180) 2、配套仿真结果文档讲解6页 3、参考资料三篇 指标: LDO 温度系数1.09ppm LDO 环路增益在 64.3dB,相位裕度在 66,系统稳定。 LDO 最大…

抛弃 Neofetch?众多优秀替代方案等你体验!

目录 抛弃 Neofetch?众多优秀替代方案等你体验Neofetch 的替代品FastfetchscreenFetchmacchina 抛弃 Neofetch?众多优秀替代方案等你体验 NeoFetch 是用 Bash 3.2 编写的命令行系统信息工具,该项目的主要开发人员已将 GitHub 存储库存档&…

【漏洞复现】和丰多媒体信息发布系统 QH.aspx 任意文件上传漏洞

0x01 产品简介 和丰多媒体信息发布系统也称数字标牌(Digital Signage),是指通过大屏幕终端显示设备,发布商业、财经和娱乐信息的多媒体专业视听系统,常被称为除纸张媒体、电台、电视、互联网之外的“第五媒体”。该系…

民生银行收大额罚单:信用卡中心一同被罚,管理层如何施救?

民生银行的2024年,再添变故。 近日,国家金融监管总局宁波分局公布了数则行政处罚信息公开表。内容显示,民生银行(SH:600016、HK:01988)宁波分行、民生银行信用卡中心宁波分中心因多项违法违规事实,共计被处…

【Git 学习笔记】Ch1.1 Git 简介 + Ch1.2 Git 对象

还是绪个言吧 今天整理 GitHub 仓库,无意间翻到了几年前自学 Git 的笔记。要论知识的稳定性,Git 应该能挤进前三——只要仓库还在,理论上当时的所有开发细节都可以追溯出来。正好过段时间会用到 Git,现在整理出来就当温故知新了。…

Redis集群-主从复制、哨兵

●主从复制:主从复制是高可用Redis的基础,哨兵和集群都是在主从复制基础上实现高可用的。 主从复制主要实现了数据的多机备份,以及对于读操作的负载均衡和简单的故障恢复。缺陷:故障 恢复无法自动化;写操作无法负载均…

HCIE实验这样玩太高级了吧?实现FRR+BFD+OSPF与BGP的联动

号主:老杨丨11年资深网络工程师,更多网工提升干货,请关注公众号:网络工程师俱乐部 晚上好,我的网工朋友。 今天搞个HCIE实验玩玩,上回分享了个张总讲解的防火墙配置实验思路,后来还特地搞了个视…

STM32人体心电采集系统

资料下载地址:STM32人体心电采集系统 1、项目功能介绍 此项目主要实现了以STM32为核心的人体心电采集系统软硬件的设计。软件设计过程是在STM32上移植的uCGUI做图形界面,并如实显示采集到的心电波形信号,有SD卡存储和USB数据传输功能。 2、实…

Linux源码阅读笔记08-进程调度API系统调用案例分析

kthread_create_on_node kthread_create_on_node函数功能&#xff1a;指定存储节点创建新内核线程。源码如下&#xff1a; 操作实战 #include <linux/module.h> #include <linux/pid.h> #include <linux/sched.h> #include <linux/kthread.h> #inclu…

复制完若依后,idea没有maven窗口

右击项目 添加框架 添加maven框架就可以了

PV操作经典例题

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 一、前言&#x1f680;&#x1f680;&#x1f680;二、正文☀️☀️☀️三、总结&#x1f353;&#x1f353;&#x1f353; 一、前言&#x1f680;&#x1f680;&am…

猫头虎 Gemma和Gemini模型的区别是什么?

猫头虎 &#x1f42f; Gemma和Gemini模型的区别是什么&#xff1f; 摘要&#x1f4d8; 在这篇文章中&#xff0c;我们将深入探讨Gemma和Gemini这两个由Google开发的AI模型。我们会对比它们的参数规模、计算资源需求和集成难度&#xff0c;帮助大家了解这两者之间的主要区别。…

【数据结构之B树的讲解】

&#x1f3a5;博主&#xff1a;程序员不想YY啊 &#x1f4ab;CSDN优质创作者&#xff0c;CSDN实力新星&#xff0c;CSDN博客专家 &#x1f917;点赞&#x1f388;收藏⭐再看&#x1f4ab;养成习惯 ✨希望本文对您有所裨益&#xff0c;如有不足之处&#xff0c;欢迎在评论区提出…

万字长文|下一代系统内存数据加速接口SDXI解读

本文内容分为5章节&#xff0c;总计10535字&#xff0c;内容较多&#xff0c;建议先收藏&#xff01; 1.SDXI技术产生的背景 2.SDXI相比DMA的优势 3.SDXI实现原理与架构 3.1 描述符环原理解读 3.2 上下文管理介绍 3.3 AKey与RKey解读 3.4 错误日志和状态管理 3.5 跨Function访…

【PLC】三菱PLC如何和汇川伺服实现485通信

前言 一开始选用的是汇川SV660P脉冲型伺服&#xff0c;由于生产需求需要对伺服的个别参数进行读取和写入操作&#xff0c;但是SV660P并不支持这种情况&#xff0c;因此需要使用485通信来满足。PLC这边选用的是三菱FX5U。 开始 1、首先准备按照下图的引脚提示准备好一根带屏蔽…

昇思25天学习打卡营第6天|简单的深度学习模型实战 - 函数式自动微分

自动微分(Automatic Differentiation)是什么&#xff1f;微分是函数在某一处的导数值&#xff0c;自动微分就是使用计算机程序自动求解函数在某一处的导数值。自动微分可用于计算神经网络反向传播的梯度大小&#xff0c;是机器学习训练中不可或缺的一步。 这些公式难免让人头大…

【C++】红黑树及其实现

目录 一、红黑树的定义1.为什么提出红黑树&#xff1f;2.红黑树的概念3.红黑树的性质 二、红黑树的实现1.红黑树的结构2.红黑树的插入2.1 uncle为红色2.2 uncle为黑色&#xff0c;且是grandfather的右孩子2.3 uncle为黑色&#xff0c;且是grandfather的左孩子 3.红黑树的验证 4…

SQLAlchemy(alembic)和Flask-SQLAlchemy入门教程

SQLAlchemy 是 Python 生态中最流行的 ORM 类库&#xff0c;alembic 用来做 OMR 模型与数据库的迁移与映射&#xff0c;Flask-SQLAlchemy 是 Flask 的扩展&#xff0c;可为应用程序添加对 SQLAlchemy 的支持&#xff0c;简化 SQLAlchemy 与 Flask 的使用。 一.SQLAlchemy 和 a…

C++——vector类用法指南

一、vector的介绍 1、vector是表示可变大小数组的序列容器 2、就像数组一样&#xff0c;vector也采用连续存储空间来存储元素。也就意味着可以采用下标对vector的元素进行访问&#xff0c;和数组一样高效。但又不像数组&#xff0c;它的大小是可以动态改变的&#xff0c;而且它…

Linux C 程序 【01】最小程序

1.开发背景 基于 RK3568 平台的基础上&#xff0c;编译一个在系统上运行的最小程序。 2.开发需求 由于 RK3568 作为宿主机&#xff0c;在上面编译程序比较慢&#xff0c;所以还是采用在 Ubuntu 下交叉编译后再拷贝到宿主机上运行。 设计实验&#xff1a; 1&#xff09;搭建 M…