我是靠谱客的博主 小巧小白菜,最近开发中收集的这篇文章主要介绍Python 爬虫进阶必备 | 某直播数据分析平台加密参数 sign 分析今日网站,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

今日网站

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脚本就可以了

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

Love&Share 

[ 完 ]

最后

以上就是小巧小白菜为你收集整理的Python 爬虫进阶必备 | 某直播数据分析平台加密参数 sign 分析今日网站的全部内容,希望文章能够帮你解决Python 爬虫进阶必备 | 某直播数据分析平台加密参数 sign 分析今日网站所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(75)

评论列表共有 0 条评论

立即
投稿
返回
顶部