Python 爬虫进阶必备 | 某 app 数据(x麦)加密参数analysis 逻辑分析

咸鱼学Python

共 1449字,需浏览 3分钟

 · 2022-02-09

点击上方“咸鱼学Python”,选择“加为星标

第一时间关注Python技术干货!


图源:极简壁纸

今日网站

aHR0cHM6Ly93d3cucWltYWkuY24vcmFuay9pbmRleC9icmFuZC9mcmVlL2NvdW50cnkvY24vZ2VucmUvMzYvZGV2aWNlL2lwaG9uZQ==

这个网站在我刚刚开始学习 js 逆向的时候研究的,那个时候 web 逆向还没有这么卷

抓包分析与加密定位

先看抓包,需要分析的参数是跟在请求链接后面的analysis

现在需要知道这个加密参数的生成逻辑

测试了下,直接搜索参数analysis没有结果,这个时候可以考虑分析js调用栈和xhr断点

这里使用xhr断点的方式定位会比较方便一点,你问我怎么知道的,因为我都测试了一遍

source面板,新增以analysis为值的xhr断点

然后刷新当前的页面,进入提示的js格式化,然后你的浏览器就卡死了,hhhhhh

你可以试着关掉断点,先格式化好js,然后下拉新数据刷新页面这样浏览器加载的数据没有那么多就不会卡死了

这个时候你断在的是下图的位置

这个时候的url中已经携带上了analysis参数

所以继续向上分析堆栈

参数中还是已经生成好了,继续向上分析,然后就会分析到异步的上一层堆栈如下的位置

如果你看过上一篇文章,那你一定会知道这里是存在猫腻的

还是熟悉的味道,还是原来的配方

打上断点,然后再刷新,就会断在interceptors的位置了,接下来只要继续单步,你就可以发现下面的位置

这里就是参数加密的位置了

加密分析

这里的一整个逻辑的返回值是e,这里的e返回的是带有analysisurl,而这里的h就是analysis,他的值是encodeURIComponent(a)

所以这里回看整个js的逻辑

开头判断条件判断fp,返回了t还有f,这里t还有f的逻辑比较简单,f和时间戳有关系

t是将u传入了一个function,获取的是cookie相关的参数

var t = (0,n.ej)(u);
f = c.default.prototype.difftime = -(0,n.ej)(m) || +new Date - 1e3 * t
function u(e{
    var t, a = new RegExp("(^| )" + e + "=([^;]*)(;|$)");
    return (t = document.cookie.match(a)) ? unescape(t[2]) : null
}

之后进入a的定义逻辑,并且同样将一个和时间戳有关的值赋值给了o

这个a的变量来自a = (0,n.cv)((0,n.oZ)(r, l))

而这里的rurl以及请求的参数有关,并没有什么很难理解的参数

这里先扣一波js看看

这里注意,下拉刷新的时候,这里的f的判断逻辑是不运行的,所以直接从a的定义逻辑开始扣就行

这里唯一不好懂得就是e.parmas那一段,这个只要把e打印出来就好理解了

上结果

这里搞到python中调用一下看看

完事~

好了,以上就是今天的全部内容了。

我是没有更新就在摸鱼的咸鱼

收到请回复~

我们下次再见。

对了,看完记得一键四连,这个对我真的很重要。

浏览 45
点赞
评论
收藏
分享

手机扫一扫分享

举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

举报