前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python 爬虫进阶必备 | 某 app 数据(x麦)加密参数analysis 逻辑分析

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

作者头像
咸鱼学Python
发布2022-03-29 17:33:46
7080
发布2022-03-29 17:33:46
举报
文章被收录于专栏:咸鱼学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相关的参数

代码语言:javascript
复制
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中调用一下看看

完事~

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2022-02-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 咸鱼学Python 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 今日网站
    • 抓包分析与加密定位
      • 加密分析
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档