某东token的由来

220 阅读3分钟

😀由于分析h5st参数可知,我们在加密的时候会有一个前轴,运用到了一个token和一段小代码字符串,推断可能由别的地方得来所以由此分析。

网站:aHR0cHM6Ly91bmlvbi5qZC5jb20vcHJvTWFuYWdlci9pbmRleA==

首先我们找到对应的接口(request_algo)

这里我们可以看到他返回的这个就是我们需要的token和后续h5st参数所需要的一小段加密。

由此打上了断点,进行请求分析(注意刷新的时候需要清掉缓存,cookie并强刷)触发此函数:

其实这里我们看到他传入已经是加密好的结果,由此推断在这之前已经是处理好的加密参数,我们通过堆栈往上查找分析。

在这里我们看到结果是o来的,并且结果是由上面加密得到,看样子非常的像AES加密通过key和iv加密得到,我们先看一下明文内容是什么如下图:

extend: 额外扩展信息(包含多个字段,如wd, l, ls, wk, bu1, bu2, bu3, bu4, bu5, bu6)

pp1: 包含多个Cookie信息,例如__jda, __jdb, __jdc, __jdv, 3AB9D23F7A4B3CSS, 3AB9D23F7A4B3C9B, _gia_d, __jdu, sidebarStatus

bu2: JavaScript错误信息(包含具体的错误位置)

ccn: 一个数值,可能是代表某种特定的计数或标识符

这里我们不难看出,都是一些比较基本的信息,对比一些采集严格的网站来说相对而已是比较少的,如果批量的话这里是可以添加一些随机参数,当然你在请求时也必须和这些参数一致以达到严谨性。

这里如果细心的小伙伴会觉得比较奇怪,因为我们平常如果说把一个对象转成json格式他显示的效果不应该是这样的,我们可以看到他这里显示的是整整齐齐像是有一些换行操作,那么我们这里也需要跟他一致的效果,我们往上找看他是如何实现的。

从这两处地方我们可以看到这里的json格式是比较奇怪的有一些特殊的换行符,那么我们可以直接跟上去看一下。

转存失败,建议直接上传图片文件

这个地方是通过jw函数进行实现的这个结果,我们可以看到传入的正是我们上一个函数传的一个环境的env对象、null和一个数字2。

然后到这里的基本上所有的参数都分析完毕,接下来就是进行aes加密了。

第一个传入的参数就是我们上面所说的明文,第二个则是key值了。

💡今天的文章到这里就结束了,后续还会出一遍专门讲解h5st参数的讲解,敬请期待。 个人博客:www.yuanbang.lol/