Python 爬虫进阶必备 | 某 app 数据(x麦)加密参数analysis 逻辑分析
第一时间关注Python技术干货!
图源:极简壁纸
今日网站
aHR0cHM6Ly93d3cucWltYWkuY24vcmFuay9pbmRleC9icmFuZC9mcmVlL2NvdW50cnkvY24vZ2VucmUvMzYvZGV2aWNlL2lwaG9uZQ==
这个网站在我刚刚开始学习 js 逆向的时候研究的,那个时候 web 逆向还没有这么卷
抓包分析与加密定位
先看抓包,需要分析的参数是跟在请求链接后面的analysis
现在需要知道这个加密参数的生成逻辑
测试了下,直接搜索参数analysis
没有结果,这个时候可以考虑分析js
调用栈和xhr
断点
这里使用xhr
断点的方式定位会比较方便一点,你问我怎么知道的,因为我都测试了一遍
在source
面板,新增以analysis
为值的xhr
断点
然后刷新当前的页面,进入提示的js
格式化,然后你的浏览器就卡死了,hhhhhh
你可以试着关掉断点,先格式化好js
,然后下拉新数据刷新页面这样浏览器加载的数据没有那么多就不会卡死了
这个时候你断在的是下图的位置
这个时候的url
中已经携带上了analysis
参数
所以继续向上分析堆栈
参数中还是已经生成好了,继续向上分析,然后就会分析到异步的上一层堆栈如下的位置
如果你看过上一篇文章,那你一定会知道这里是存在猫腻的
还是熟悉的味道,还是原来的配方
打上断点,然后再刷新,就会断在interceptors
的位置了,接下来只要继续单步,你就可以发现下面的位置
这里就是参数加密的位置了
加密分析
这里的一整个逻辑的返回值是e
,这里的e
返回的是带有analysis
的url
,而这里的h
就是analysis
,他的值是encodeURIComponent(a)
所以这里回看整个js
的逻辑
开头判断条件判断f
和p
,返回了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))
而这里的r
和url
以及请求的参数有关,并没有什么很难理解的参数
这里先扣一波js
看看
这里注意,下拉刷新的时候,这里的f
的判断逻辑是不运行的,所以直接从a
的定义逻辑开始扣就行
这里唯一不好懂得就是e.parmas
那一段,这个只要把e
打印出来就好理解了
上结果
这里搞到python
中调用一下看看
完事~
好了,以上就是今天的全部内容了。
我是没有更新就在摸鱼的咸鱼
收到请回复~
我们下次再见。
对了,看完记得一键四连,这个对我真的很重要。