爬虫逆向实战(42)-某巢登陆(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接口即可。

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

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

相关文章

nlp--最大匹配分词(计算召回率)

最大匹配算法是一种常见的中文分词算法,其核心思想是从左向右取词,以词典中最长的词为优先匹配。这里我将为你展示一个简单的最大匹配分词算法的实现,并结合输入任意句子、显示分词结果以及计算分词召回率。 代码 : # happy coding…

Ubuntu24.04之安装KVM(二百五十五)

简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长! 优质专栏:Audio工程师进阶系列【原创干货持续更新中……】🚀 优质专栏:多媒…

2-18 基于matlab的关于联合对角化盲源分离算法的二阶盲识别(SOBI)算法

基于matlab的关于联合对角化盲源分离算法的二阶盲识别(SOBI)算法。通过联合对角化逼近解混矩阵。构建的四组信号,并通过认为设置添加噪声比例,掩盖信号信息。通过SOBI算法实现了解混。程序已调通,可直接运行。 2-18联合…

JavaScript中location对象的主要属性和方法

属性 href:获取或设置整个URL。protocol:获取URL的协议部分,如"http:"或"https:"。host:获取URL的主机名(包括端口号,如果有的话)。hostname:获取URL的主机名&…

netlink通信——读取路由表获取通信网卡IP

读取路由表获取通信网卡IP是什么意思呢?且听我一一道来… 下面是我虚拟机两个网卡的IP,很明显两个网卡是不同网段的,我的物理机网卡网段是192.168.1.0/24,与我物理机和外网通信的网卡是ens160,即192.168.31.0/24网段&a…

2018年全国大学生数学建模竞赛A题高压油管的压力控制(含word论文和源代码资源)

文章目录 一、部分题目二、部分论文三、部分源代码问题1(1)绘制弹性模量与压力函数图(2)求最优单次开阀时间 问题二(1)极径与极角关系(2)求最优凸轮角速度 四、完整word版论文和源代…

多语言模型(Multilingual Models)用于推理(Inference)

在深入探讨多语言模型(Multilingual Models)用于推理(Inference)的详细内容时,我们需要首先理解多语言模型的基本概念、它们如何工作、为什么它们在现代自然语言处理(NLP)中变得如此重要&#x…

物理建模的一个重要概念:因果/非因果建模

物理系统的建模仿真,根据建模思想可划分为: 因果建模(Causal Modeling)非因果建模(Acausal Modeling) 二者的核心思想是通过信号流还是方程来定义模型的行为。 像我们熟知的Simulink就是基于因果建模的思…

【C++知识点总结全系列 (05)】:IO 类的详细总结和分析

1、基类 istream 和 ostream (1)istream A.What 输入流的抽象类,是所有输入流类的基类 B.Why(输入流的作用) 用于从数据源(如文件、标准输入设备等)读取数据 (2)ostream A.What 输出流的抽象类,是所有输…

Vue组件间通信方式超详细(父传子、父传后代、子传父、后代传父、兄弟组件传值、没有关系的组件传值)

Vue组件间通信方式超详细(父传子、父传后代、子传父、后代传父、兄弟组件传值)_vue 父传子-CSDN博客 vue 组件间传值:父传子 / 子传父 / 子传子 / 祖传孙 - 简书

RFID无线测温技术在数据中心管理中的革新与应用。

在现代信息技术飞速发展的背景下,数据中心作为承载企业、集团、机构核心业务的关键设施,其可靠性要求极高。随着大数据、云计算等技术的应用日益普及,数据中心面临着前所未有的挑战和机遇。其中,RFID无线测温技术作为一种新兴的智…

喜报 | 极限科技获得北京市“创新型”中小企业资格认证

2024年6月20日,北京市经济和信息化局正式发布《关于对2024年度4月份北京市创新型中小企业名单进行公告的通知》,极限数据(北京)科技有限公司凭借其出色的创新能力和卓越的企业实力,成功获得“北京市创新型中小企业”的…

Paimon 在汽车之家的业务实践

汽车之家基于Paimon的实践 摘要:本文分享自汽车之家的王刚、范文、李乾⽼师。介绍了汽车之家基于 Paimon 的一些实践,和一些背景。内容主要为以下四部分: 一、背景 二、业务实践 三、paimon 优化实践 四、未来规划 一、背景 在使用Paimon之前…

ACM美国计算机协会简介及个人下载ACM文献途径

ACM美国计算机协会简介: ACM(Association for Computing Machinery) 创立于1947年, 是全球历史最悠久和最大的计算机教育、科研机构。ACM目前提供的服务遍及全球100多个国家,会员数超过9万名,涵盖工商业&a…

从入门到深入,Docker新手学习教程

编译整理|TesterHome社区 作者|Ishaan Gupta 以下为作者观点: Docker 彻底改变了我们开发、交付和运行应用程序的方式。它使开发人员能够将应用程序打包到容器中 - 标准化的可执行组件,将应用程序源代码与在任何环境中运行该代码…

用 AI 生成绘本,含大量 prompt

画图过程,为了保证绘本输出的风格统一,角色连贯,画面内容与故事保持一致 1、画风统一的解决办法:固定一个插画师的风格,可以输入插画师的名字,或者垫图,即上传你需要借鉴风格的图片 2、角色连贯…

Linux库概念及相关编程(动态库-静态库)

Linux库概念及相关编程 分文件编程案例 分文件编程是指将程序按功能模块划分成不同的文件进行编写,这种方法有以下好处: 功能责任划分:每个文件对应一个功能模块,职责明确,易于理解和维护。方便调试:可以…

走进开源企业 | 湖南大学OpenHarmony技术实训活动在开鸿智谷顺利举办!

6月24日-6月26日,2024开放原子校源行之湖南大学信息科学与工程学院师生走进开源企业实训交流活动顺利落下帷幕。湖南大学信息科学与工程学院的师生代表团一行90人参与了湖南开鸿智谷数字产业有限公司(以下简称“开鸿智谷”)与母公司拓维信息系…

从BeanFactory源码看Bean的生命周期

下图是我搜索“Spring Bean生命周期”找到的图片,来自文章——Spring Bean的生命周期 [](https://img2022.cnblogs.com/blog/1942408/202207/1942408-20220713150530777-1198523052.png) 下面,我们从AbstractAutowireCapableBeanFactory的源码中来分析…

深度学习笔记: 最详尽解释预测系统的分类指标(精确率、召回率和 F1 值)

欢迎收藏Star我的Machine Learning Blog:https://github.com/purepisces/Wenqing-Machine_Learning_Blog。如果收藏star, 有问题可以随时与我交流, 谢谢大家! 预测系统的分类指标(精确率、召回率和 F1 值) 简介 让我们来谈谈预测系统的分类指标以及对精确率、召回…