某东h5st 4.7 分析

某东h5st 4.7 分析

声明

本文章中所有内容仅供学习参考,全源于作者的思路理解,不提供完整代码,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关

目标

目标:某东 h5st 4.7 分析

网址:aHR0cHM6Ly93d3cuamQuY29tLw==

流程分析

h5st后缀

首先找加密位置,可以用关键词搜索

在这里插入图片描述

发现通过window.PSign.sign异步生成了h5st

在这里插入图片描述

我们先处理colorParamSign的body

在这里插入图片描述

SHA256通过测试发现是标准的,所有我们可以直接用node的crypto-js模块

在这里插入图片描述

const CryptoJS = require("crypto-js");
CryptoJS.SHA256(JSON.stringify(colorParam.body)).toString()

body解完后我们回到window.PSign.sign继续调试

在这里插入图片描述

这是异步的写法,主要通过var u = S(e, t, r);里执行,我们继续调试

在这里插入图片描述

发现进入了控制流,那我们去分析这个控制流,像push、p[p.length - 1]、p.pop()这些的就直接过,看见有调用call方法的,我们打上断点调试

在这里插入图片描述

我们调试到case 98的时候f.call(p[p.length - 2], p[p.length - 1])生成了h5st的后缀

在这里插入图片描述
在这里插入图片描述

那我们步入调试,发现还是控制流,继续找call方法下断点,调试发现生成了一段明文,里面random是随机生成的,其他均可写死.

random怎么生成的?,我们可能跳步骤多了,所有需要重新调试(random也是在这个控制流中生成的)

在这里插入图片描述

可以发现在这个地方生成的

在这里插入图片描述

我们进入s方法,发现除random以外的也都在这生成的,主要就是环境的检测,这里我们就不继续分析了

在这里插入图片描述

那我们继续往下调试,发现进行了数据格式的转换,把字符串变成WordArray 对象,你可以用node的crypto-js模块转换

("_M6Y?dvfN40VMF[X"和"0102030405060708"写死)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

const CryptoJS = require("crypto-js");
CryptoJS.enc.Utf8.parse("_M6Y?dvfN40VMF[X")

我们也可以扣方法,这样可以省去一大堆麻烦

我们继续调试,到这一块,发现生成的格式很像对称加密,这就是h5st后缀WordArray生成的地方,但这个是魔改了的,我们可以直接扣方法

在这里插入图片描述
在这里插入图片描述

我们折叠代码与调试,发现这些方法最终是在HS里面,我们可以直接去扣他的代码,这里我就跳过了

在这里插入图片描述

如果你能把HS扣下来,h5st你也算是完成一大半了,后面就是调用这些方法执行

那我们继续往下走还要通过魔改的base64编码转换WordArray得到最终的h5st后缀,这个encode方法也在HS里,直接调用即可

在这里插入图片描述

h5st后缀拿到手我们就可以跳出这个方法了,回到上一个控制流继续调试

h5st的拼接

调试到这发现h5st在这生成,我们步入,发现又进入了控制流,还是找call方法打断点调试

在这里插入图片描述

这里生成了时间戳我们直接补上,继续往下走

在这里插入图片描述

这里生产了h5st的前缀,带上时间戳和"yyyyMMddhhmmssSSS"拿到前缀,这里我们可以直接扣这个format方法("yyyyMMddhhmmssSSS"写死)

在这里插入图片描述

继续走来到test方法

在这里插入图片描述

这里的前缀加了’07’,不知道大家发现没

其中token、fp、appid都是接口返回的,token会变,你可以尝试去找这个接口

这个test方法也是接口返回的,他的加密算法会变,也是魔改的,当然也在HS里,你直接调用即可(可以先写死一套)

在这里插入图片描述

继续往下,这里携带了test的密文,我们步入进去又是一个控制流,我们继续断点

在这里插入图片描述

走到这里又调用的HS的方法对test密文和params进行的二次加密,我们拿到这个密文就可以跳出当前函数,回到上个控制流

在这里插入图片描述

二次密文结果是

在这里插入图片描述

最后我们继续往下走,走到这里把我们前面的拼接一下h5st就成功得到了

在这里插入图片描述
在这里插入图片描述

结尾

h5st主要的还是扣HS,其他都是调用HS生成,祝大家顺利拿到结果

  • 24
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值