前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python 爬虫进阶必备 | 某直播数据分析平台加密参数 sign 分析

Python 爬虫进阶必备 | 某直播数据分析平台加密参数 sign 分析

作者头像
咸鱼学Python
发布2020-09-16 11:02:34
5410
发布2020-09-16 11:02:34
举报
文章被收录于专栏:咸鱼学Python咸鱼学Python

今日网站

aHR0cHMlM0EvL3d3dy5ocmRqeXVuLmNvbS8lM0YlMjMvYW5jaG9yTGlzdA==

被催更了,最近临近特殊时期,所以比较忙,趁着晚上有空来一发。

抓包分析与加密定位

今天这个网站的加密也是比较简单的,所以速战速决。

先看看需要分析的请求

我们需要抓取的是主播流量数据,通过抓包分析可以定位到下面这个请求

在请求头里有两个加密的参数tokensign

分析这两个参数可以通过参数名检索和xhr断点两种方式分析,这里先简单检索一下参数名。

如果是新手朋友,xhr断点的分析方式可以在用参数名分析的方式定位出加密位置之后自己另外试试,锻炼自己分析堆栈的思维

我们直接检索sign不管是否加上:结果都是非常多的

所以尝试下之前提过的方法

当检索加密参数名,结果很多的时候,可以通过检索请求的其他参数名来分析定位,一般它们都是一起提交的,所以一般都会写在一块

所以这里检索tenant这个参数,可以看到结果很少,而且有价值的结果也很明显

在第二条结果里再次定位,就能够看到我们需要的结果了

打上断点再次刷新验证猜想

可以看到断点成功断上了

我们简单分析一下

变量f也就是参数sign它的加密是由V(pe(be(h)) + "&accessSecret=800006").toUpperCase();得到的

参数token的结果是由c["a"].globalData.token;得到的

现在只要把其中的执行的函数扣出来,能跑通就完成参数的生成了

加密逻辑分析

先来看看参数token

从名字来看,这个参数是一个全局的变量,但是通过检索,发现这个参数是没有检索结果的,而且多次刷新都没有变化

我切换到其他的浏览器测试,这个参数的值多次刷新也是没有变化的,所以这个参数可能是账号+浏览器环境结合生成的的一种标识,长得唬人而已,当作固定值就好

再看下参数sign

可以看到它的加密是由V(pe(be(h)) + "&accessSecret=800006").toUpperCase();得到的,所以我们一步一步来看

首先执行的是be(h)

好像看不出来有做什么特殊的操作,我们验证一下

继续验证下pe(be(h)

可以看到pe是用=将参数拼接起来

继续看V(),这个时候传入的参数是days=3&accessSecret=800006

同时传入到X(Q(K(e)))这段代码里,我们继续调试

同时用console辅助调试

方法K将参数做了CharCode

这里因为我们的参数是由英文和数字组成,所以没有变化

下面继续分析方法Q,console辅助调试结果显示,Q也是做了一系列的位运算

没分析出来具体是什么,直接抠出来

得到Q的结果之后再看X

这里的W是固定值0

我们直接带入代码就可以得到下面的结果了

可以看到和浏览器运行结果一样

之后经过大写转换就和请求提交的完全一样了

之后直接传入Python脚本就可以了

好了,以上就是今天的全部内容了,咱们下次再会~

[ 完 ]

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

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

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

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

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