017-续集-贝壳登录(剩余三个参数)

上一文讲了password参数,本文讲解剩余三个参数:

loginTicketId参数

我们之前搜到参数在另一个接口,请求一下此接口:

这个接口中没有要逆向的参数,所以直接请求拿响应值即可

srcId参数

我们触发两次登录接口看看此值变不变化:

其实是不变化的,所以没必要管他

dataId参数

今天重点将此参数值获取,这个参数我们在其他接口是能搜到的,但是那个接口中有两个密文值,还需要看是否需要逆向,接口是刷新网页时产生的,所以多刷新几次然后筛选出接口,在对比是否变化:

是变化的,然后我们再生成py代码注释试试看:

再然后看看有没有其他接口响应值中存在这两个密文:

没有,那就老老实实逆向吧

找加密位置

xhr断点看看,这里是xhr断下来的上一个栈:

没有传参,但是也不像在此生成的,那就继续向上跟栈:

那就还在前面,一直找找到这里:

这里是异步前的一个栈,i中取值,在i生成的位置打断点然后刷新触发断点,然后进方法:

一个一个解决,先看k:

标准加密算法RSA,找一下密钥在哪儿生成:

密钥有两个,我们全复制然后搜索看看:

上面h这个,可以写死,RSA解决,下面看一下d:

AES或者DES加密,看着很标准,但是我们还是按照处理魔改的方式处理它吧,直接扣代码,扣之前大概看一下,

我们首先需要入参e,t然后是对象s,r,a,c还有d,对象都在上面:

这一看就像是webpack,然后入参看看:

t应该是密钥,看看t怎么生成的(多次观察发现t是变的):

在这里生成的,ok差不多齐活了,开始复现

复现逻辑

k参数

RSA直接搞上,然后t入参扣下来:

这个很简单哈

d参数

先将那几个对象拿下来:

然后打断点刷新网页,扣下来webpack:

直接全扣,这里的webpack和我们之前见的不太一样,他的模块是写在最前面赋值给一个e对象,扣下来之后给模块全删掉,然后再将加密函数拿下来:

o函数也拿下来:

将webpack加载器导出,打印日志方便补模块,然后将加载器调用n(xxx)改为全局变量(xxx),还有一点是将webpack中的自执行方法注释掉:

然后运行开始补模块:

拿一下:

发现这样拿不了模块了,那我们去加载器那个文件中通过搜索的方式搜索来拿:

最好加个冒号好找,补完一个补下一个:

直到我看见这个玩意儿:

废了,一会儿别的又出来这种那带补到啥时候,所以我试了试批量获取模块,这里注意打第二个断点的位置:

在u这里,因为前面大部分都需要用,运行过来看对象:

有是有,但好多undefined,算了吧,咱直接用最笨但最省事儿的办法,全拿回来,一点儿不带删的:

然后运行:

拿下✌

py调用和处理报错

我们先封装一下js,然后py调用一下看看,结果发现响应为500:

回浏览器看发现d参数没那么短:

而鉴于对称加密明文越长密文越长的特性,我们重新调试看看是否是明文不对:

这是我们拿的明文,点击运行后发现还会再走一遍此函数:

这个明文就非常长了,拿下来再运行py试试:

py调用result:

拿下✌

小结

本文不难,就是很麻烦,相当于很多个加密接口掺杂在一起,逐个击破即可,如文章有什么问题请及时提出,加油加油

相关推荐
YMWM_几秒前
python-venv虚拟环境
linux·开发语言·python
电商API_180079052474 分钟前
电商ERP 自动同步订单功能实现拆解与技术手段
服务器·前端·网络·爬虫
Tbisnic18 分钟前
23.大模型开发:深度学习----CNN 卷积神经网络 与 RNN 循环神经网络
人工智能·python·rnn·深度学习·cnn·ai大模型
CoderYanger1 小时前
视频切割脚本(Python版)
linux·开发语言·windows·后端·python·程序人生·职场和发展
迷途呀1 小时前
新闻头条后端:新闻缓存模块
前端·redis·python·缓存·fastapi
想会飞的蒲公英1 小时前
逻辑回归为什么叫回归,却用来做分类
人工智能·python·分类·回归·逻辑回归
CoderYanger1 小时前
视频裁剪+缩放+自动添加水印脚本(Python版)
开发语言·后端·python·程序人生·职场和发展·音视频·学习方法
霍格沃兹测试开发学社测试人社区1 小时前
Node.js 浏览器引擎 + Python 大脑:Playwright 混合架构爬虫系统深度解析
python·架构·node.js
绘梨衣5472 小时前
求助帖:pdf复杂表格解析
爬虫·python·pdf
充钱大佬10 小时前
Python测试基础教程
python·log4j·apache