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

news2024/9/17 7:30:13

一、数据接口分析

主页地址:某巢

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.coloradmin.cn/o/1883836.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

使用explain优化慢查询的业务场景分析

问:你最害怕的事情是什么?答:搓澡问:为什么?答:因为有些人一旦错过,就不在了 Explain 这个词在不同的上下文中有不同的含义。在数据库查询优化的上下文中,“EXPLAIN” 是一个常用的 …

矩阵置零解题

给定一个 m x n 的矩阵,如果一个元素为 0 ,则将其所在行和列的所有元素都设为 0 。请使用 原地 算法。 示例 1: 输入:matrix [[1,1,1],[1,0,1],[1,1,1]] 输出:[[1,0,1],[0,0,0],[1,0,1]]示例 2: 输入&…

UI(四)布局

文章目录 10、Navigator——路由器组件11、Pannel——可滑动面板12、Refresh——刷新组件13、RelativeContainer——相对布局组件14、Scroll——可滚动容器15、SideBarContainer——侧边栏容器16、Stack——堆叠容器17、Swiper——滑动块视图容器18、Tabs和TabContent——页签和…

mac英语学习工具:Eudic欧路词典 for Mac 激活版

Eudic欧路词典是一款非常受欢迎的英语学习软件,它提供了丰富的词汇解释、例句、同义词、反义词等功能,帮助用户更好地理解和掌握英语单词。 以下是Eudic欧路词典的一些主要特点: 海量词汇库:Eudic欧路词典拥有庞大的词汇库&#…

arm_uart4实验

#include "uart4.h" //UART //初始化 void hal_uart4_init() { //rcc_init //…

Google推出开源模型Gemma 2:性能大幅提升与创新训练方法

引言 近日,Google推出了开源模型Gemma 2,吸引了广大研究人员和开发者的关注。相比上一代模型,Gemma 2在性能和可用性方面实现了显著提升,提供了9B和27B两个版本,并且对外开放免费使用。本文将深入探讨Gemma 2的技术细…

QueryClientProvider is not defined

QueryClientProvider is not defined 运行一个svelte的项目,报错如上,前后查找解决不了,然后没办法, 本来是用yarn 安装的依赖,改用npm install,再次运行就成功了

可燃气体报警器定期检测:优化与改进策略的探讨

在现代化的工业环境中,可燃气体报警器的作用日益凸显。它们像是我们生产现场的安全卫士,时刻警惕着可能发生的危险,确保我们的工作环境安全、稳定。 然而,要确保这些“卫士”始终忠诚可靠,定期检测就显得尤为重要。 …

【JVM面试题】总结-01

【JVM面试题】总结-01 1. 介绍下Java内存区域(运行时数据区)1.1 程序计数器(线程私有)1.2 虚拟机栈(线程私有)1.3 本地方法栈(线程私有)1.4 Java堆(线程共享)1.5 方法区(线程共享)1.5.1 方法区和永久代的关系1.5.2 常用参数1.5.3 为什么要将永久代 (方法区) 替换为元空间 (Meta…

WCCI 2024开幕,横滨圣地巡礼,畅游动漫与美食的世界

惊喜!WCCI 2024开幕,横滨圣地巡礼!畅游动漫与美食的世界 会议之眼 快讯 会议介绍 IEEE WCCI(World Congress on Computational Intelligence)2024,即2024年IEEE世界计算智能大会,于6月30日至…

写代码,为什么还需要作图?

引言 古人云 :一图胜千言,闲人说:无图无真相。 在日常的聊天工具当中,无论是使用微信,还是钉钉。使用图片或表情包的频次越来越高,那是为什么呢?其实在互联网没有那么发达的时候,我…

Adobe Premiere 视频编辑软件下载安装,pr全系列分享 轻松编辑视频

Adobe Premiere,自其诞生之日起,便以其卓越的性能和出色的表现,稳坐视频编辑领域的王者宝座,赢得了无数专业编辑人员与广大爱好者的青睐。这款强大的视频编辑软件,凭借其丰富的功能和灵活的操作性,为用户提…

(1)Jupyter Notebook 下载及安装

目录 1. Jupyter Notebook是什么?2. Jupyter Notebook特征3. 应用3. 利用Google Colab安装Jupyter Notebook3.1 什么是 Colab?3.2 访问 Google Colab 1. Jupyter Notebook是什么? 百度百科: Jupyter Notebook(此前被称为 IPython …

函数创建单链表---无n型,需要 while 循环 + scanf

题目&#xff1a; #include <stdlib.h> struct link{int data;struct link *next; }; struct link* creatLink(); int main(){struct link *head,*p;headcreatLink();for(phead->next ;p;pp->next )printf("%d ",p->data );return 0; }/* 请在这里填…

501、二叉搜索树中的众数

给你一个含重复值的二叉搜索树&#xff08;BST&#xff09;的根节点 root &#xff0c;找出并返回 BST 中的所有 众数&#xff08;即&#xff0c;出现频率最高的元素&#xff09;。如果树中有不止一个众数&#xff0c;可以按 任意顺序 返回。 假定 BST 满足如下定义&#xff1…

泛微E9开发 根据故障来源新增明细行,并且初始化错误类型

根据故障来源新增明细行&#xff0c;并且初始化错误类型 1、需求说明2、实现方法3、扩展知识点3.1 批量修改字段值或显示属性3.1.1 格式3.1.2 参数3.1.3 演示 3.2 根据字段ID获取字段信息3.2.1 格式3.2.2 参数3.2.3 演示 1、需求说明 用户对出现故障的机器或设备进行判断问题判…

第十四届蓝桥杯省赛C++A组F题【买瓜】题解(AC)

70pts 题目要求我们在给定的瓜中选择一些瓜&#xff0c;可以选择将瓜劈成两半&#xff0c;使得最后的总重量恰好等于 m m m。我们的目标是求出至少需要劈多少个瓜。 首先&#xff0c;我们注意到每个瓜的重量最多为 1 0 9 10^9 109&#xff0c;而求和的重量 m m m 也最多为…

Linux高并发服务器开发(八)Socket和TCP

文章目录 1 IPV4套接字结构体2 TCP客户端函数 3 TCP服务器流程函数代码粘包 4 三次握手5 四次挥手6 滑动窗口 1 IPV4套接字结构体 2 TCP客户端 特点&#xff1a;出错重传 每次发送数据对方都会回ACK&#xff0c;可靠 tcp是打电话的模型&#xff0c;建立连接 使用连接 关闭连接…

探索SOLIDWORKS 2024设计增强功能

随着技术的不断进步和市场的日益竞争&#xff0c;工程设计和制造行业对于快捷、准确和创新的工具需求日益增长。SOLIDWORKS作为3D CAD设计软件&#xff0c;一直致力于为用户提供更强大、更便捷的设计工具。SOLIDWORKS 2024的发布&#xff0c;再次证明了其在设计增强功能方面的持…

代码随想录算法训练营Day55|42.接雨水、84.柱状图中最大的矩形

接雨水 42. 接雨水 - 力扣&#xff08;LeetCode&#xff09; 暴力解法 对计算接到的雨水&#xff0c;有两种方式&#xff0c;一是按照行来计算。 另一种是按列计算 按列计算容易不乱。基本思路如下&#xff1a; 对每列i进行循环&#xff0c;在循环中&#xff0c;找到该列左…