数据价值持续释放的同时,数据安全问题受关注度也在不断攀升,Risk Based Security 报告显示,2021 年全球公开披露的数据泄露事件高达 4 145 起,共导致约 227 亿条数据被泄露,其中影响较大的泄露事件包括:5.53 亿 Facebook 用户的全名、出生日期、电话号码等敏感数据被泄露;
发现这个 JS 被混淆了,我们可以用 v_jstools 进行简单的变量还原,替换进去即可,最终我们分析可得,data 参数是由 ek 和轨迹明文加密得到的,这里我们跟进加密函数 h 中,看看 data 是如何生成的:
跟进到 _0x7f9865 函数中,直接把算法扣下来:我们来分析下这是什么算法,倒着看,_0x70f89f、_0x1d4342 之类的是一些十进制数,keyStr.charAt 就是获取 keyStr 字符串特定位置的字符值,最后拼接起来:keyStr 就是源码中的 this,其值如下,长度为 65 位:这一串完全符合 Base64 编码索引表的特征,包含大写字母、小写字母、数字、加号和斜杠,64 位,还有一个填充字符,Base64 编码的基本流程如下,例如编码 Hello 字符串:首先,将 Hello 转换为 ASCII 码,得到 72 101 108 108 111;