京东h5st参数js逆向

扣代码的环节挺简单的就不讲了 直接到重点

发现许多包都会有一个h5st的加密参数 那么我们就要看这个参数是怎么生成的
image




我们可以根据请求堆栈 找到h5st的入口 当然还有一种更简单的方法 就是直接全局搜索h5st 这里采用后者
image




这里sign函数就是h5st生成的地方 但是这是个promise异步函数所以我们要用断点跟进 进入这个promise里面
image
我们跟进的按钮是最后一个箭头
image




一直按箭头跟进 发现最后我们来到了一个switch case控制流
image

在这个控制流里面还有一个switch case 控制流

image

我们需要对这控制流 进行插桩操作
也就是console.log 他的操作的这个数组 和 case的数字 如下图我们加了个console.log(p,g[v])插桩
image
发现数据htst在74的位置出现了 那么我们就要去case 62的地方寻找他的生成函数
image



在62的位置发现了个call函数 基本就是在这里生成的了
image
我们下断点打在这里
image



那么我们跟进这个函数里面 发现又是一个switch case控制流
image
继续插桩 同时删除之前插的装
image




控制台打印出的数据来看 这里很有可能藏了脏数据
image




我们同时在我们自己的代码 和 浏览器的源代码里面看case42 打印这个数据看看
这是自己环境下的
image


image

这是浏览器环境下的

image

很明显发现少了两个环境参数 canvas 和 webglfp 还有一个extend也不一样
那么我们要总么补这个环境参数呢



因为a是t得来的
那么我们就搜索一下有没有给t赋值的地方
image
发现确实有一个



那么我们就在自己的代码里面手动补这三个个环境参数
image



很明显的发现补完环境参数的h5st要比没补的长了一大截
image

posted @ 2024-09-07 16:59  WSssSW  阅读(119)  评论(0编辑  收藏  举报