爬虫逆向实战(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.mzph.cn/news/864357.shtml

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

相关文章

论坛万能粘贴手(可将任意文件转为文本)

该软件可将任意文件转为文本。 还原为原文件的方法:将得到的文本粘贴到记事本,另存为UUE格式,再用压缩软件如winrar解压即可得到原文件。建议用于小软件。 下载地址:https://download.csdn.net/download/wgxds/89505015 使用演示…

【PYG】切片语法[:,]

在 Python 中,使用切片语法 [:,] 是一种方便的方式来选择多维数组或张量的特定部分。具体来说,这种语法在处理 NumPy 数组或 PyTorch 张量时非常有用。让我们详细解释一下为什么可以写成 [:, :] 以及这种语法的含义。 切片语法解释 ::表示选…

pytorch自适应的调整特征图大小

文章目录 代码 代码 256256 --> 224224 import torch import torch.nn as nn# 假设 x 是你的特征图,形状为 (4, 32, 256, 256) x torch.randn(4, 32, 256, 256)# 方法一:使用自适应平均池化调整大小 adaptive_avg_pool nn.AdaptiveAvgPool2d((224…

Kafka 位移

Consumer位移管理机制 将Consumer的位移数据作为一条条普通的Kafka消息,提交到__consumer_offsets中。可以这么说,__consumer_offsets的主要作用是保存Kafka消费者的位移信息。使用Kafka主题来保存位移。 消息格式 位移主题就是普通的Kafka主题。也是…

【JavaScript脚本宇宙】探索前端打包利器:从Webpack到Esbuild的全面解析

即刻更新,无缝开发:六大打包工具的热重载实战指南 前言 在现代前端开发中,高效的模块打包工具对提高开发效率和代码质量起着至关重要的作用。本文将详细介绍六种流行的JavaScript打包工具:Webpack、Parcel、Vite、Snowpack、Rol…

基于KDE下kcrash框架二次开发core dump工具

将kde下框架的源码编译后安装使用 配置环境和依赖 根据kcrash源码的cmakelist文件可知该项目的主要环境和依赖包括: qt6.6以上;EMC6.4(KDE下EMC框架,其他地方没找到这个版本的EMC),KCoreAddons&#xff0…

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

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

GPT-4o文科成绩超一本线,理科为何表现不佳?

目录 01 评测榜单 02 实际效果 什么?许多大模型的文科成绩竟然超过了一本线,还是在竞争激烈的河南省? 没错,最近有一项大模型“高考大摸底”评测引起了广泛关注。 河南高考文科今年的一本线是521分,根据这项评测&…

python与matlab微分切片的区别

python python使用np中的linespace生成等间隔数值, import numpy as np numpy.linspace(start, stop, num50, endpointTrue, retstepFalse, dtypeNone, axis0)start:序列的起始值。stop:序列的结束值。如果 endpoint 为 True,该…

代码随想录算法训练营第55天 [ 42. 接雨水 84.柱状图中最大的矩形]

代码随想录算法训练营第55天 [ 42. 接雨水 84.柱状图中最大的矩形] 一、42. 接雨水 链接: 代码随想录. 思路:找到左边第一个大于我的和右边第一个大于我的 做题状态:看解析后做出来了 //暴力法(会超时) class Solution { public:i…

CesiumJS【Basic】- #043 绘制脉冲线(Entity方式)- 需要自定义着色器

文章目录 绘制脉冲线(Entity方式)- 需要自定义着色器1 目标2 代码2.1 main.ts3 资源文件绘制脉冲线(Entity方式)- 需要自定义着色器 1 目标 使用Entity方式绘制脉冲线 2 代码 2.1 main.ts import * as Cesium from cesium;const viewer = new Cesium.Viewer(cesiumCont…

【TB作品】打地鼠游戏,ATMEGA16单片机,Proteus仿真 打地鼠游戏

11个按键LCD1602显示器9个灯蜂鸣器打地鼠小游戏就是九个灯泡,对应九个按键,灯泡有红黄蓝,每间隔一会儿就会亮一个灯,代表地鼠冒出来,按一下按键让灯泡灭掉代表打地鼠,红的三分,黄的两分&#xf…

一句话介绍什么是AI智能体?

什么是AI智能体? 一句话说就是利用各种AI的功能的api组合,完成你想要的结果。 例如你希望完成一个关于主题为啤酒主题的小红书文案图片,那么它就可以完成 前面几个步骤类似automa的组件,最后生成一个结果。

面试突击指南:Java基础面试题4

1. HTTP响应码有哪些 HTTP响应码分为以下几类: 1xx(临时响应):表示请求已被接收,继续处理。2xx(成功):表示请求已成功被服务器接收、理解、并接受。3xx(重定向):表示需要进一步的操作以完成请求。4xx(客户端错误):表示请求包含错误或无法被服务器处理。5xx(服务…

RIP 路由 3 个定时器的工作流程和 4 种防环方法

RIP 路由 3 个定时器的工作流程 根据 RFC2453, RIP 协议一共定义了 3 种定时器,分别是: ・更新定时器 (Update Timer) ・老化定时器 (Age Timer) ・垃圾收集定时器 (Garbage-collectTimer) RIP 的更新信息发布是由更新定时器控制的,默认…

IT专业入门——高考假期预习指南,我来做你的引路人

目录 认识IT知识体系 什么是计算机 按规模、速度和功能分类 按照其工作模式分类 硬件 操作系统 编程语言 对学习语言的一点建议 对于学python的一点看法 网络 数据结构与算法 数据库 Web开发 Web前端 Web后端 基础预习指南 技术路线学习一览 学习资源推荐 刷…

spring interceptor失效

适用方式 增加interceptor,implements HandlerInterceptor,实例如下 Slf4j public class AccessInterceptor implements HandlerInterceptor {Overridepublic boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object han…

开放式耳机哪个品牌最好?2024精选5款热门品牌,新手必看的开放式耳机指南!

最近想买开放式耳机,但面对众多品牌和型号,真的太难挑选了?别担心,作为耳机发烧友和测评专家,我为大家带来了几款热门开放式耳机的横向对比。从6个方面告诉大家怎么样去挑选开放式耳机,并且推荐了几款我觉得…

在C++中什么是异常处理以及如何使用try-catch块

在C中,异常处理是一种处理运行时错误(如内存分配失败、无效的用户输入等)的机制。它允许程序在出现错误时优雅地处理,而不是简单地崩溃。异常处理的核心组件是try、catch和throw。 throw:这是用来抛出异常的语句。当某…

深度学习 --- stanford cs231学习笔记八(训练神经网络之dropout)

6,dropout 6,1 线性分类器中的正则化 在线性分类器中,我们提到过正则化,其目的就是为了防止过度拟合。例如,当我们要用一条curve去拟合一些散点的数据时,常常是不希望训练出来的curve过所有的点&#xff0c…