← 返回文章列表

某哪儿加密算法分析与风控分析

算法部分

抓包分析

  • 抓包得到的值 , 经过多轮调试 , 可以确定这些值为主要校验的参数 , 其余参数对业务数据无影响
  • 其次我们来看请求参数

__m__3c49b916151f5a01b6980faaca2aac32
Bella1654604625968##8286fee7fe61bf41b2403b33819085d1cc82904..........
  • 优先关注这两字段 , 其余字段皆无加密 , st为时间戳

请求参数分析

__m__来源

  • 比较容易找到的是__m__
  • js代码由webpack打包 , 并无使用强力混淆
  • 直接跟函数即可

  • 加密数据来源于一个token , 一个qttime
  • token来源很容易确认 , 为服务器返回时自动生成的数据 , 且为空也可正常发送

  • qttime的值也为服务器更新cookie时间后 , 得到的一个值

  • 最后两个参数经过此加密函数 , 由时间戳决定执行哪个加密函数

webpack还原M值

  • 由于webpack的特性 , 我们找到包加载器即可

  • n为webpack的加载函数

  • 初始化时 , 对应i函数

  • 我们将此函数设置为全局
  • 将代码载入v8引擎 , 尝试主动调用加密算法的包

_require(331).default.encrypt()
// 0144712dd81be0c3d9724f5e56ce6685
  • 此时结果已正常返回 , 可以看到之前的列表还有报错提示 , 可能依赖了其他UI库或者数据之类的 , 但webpack加载器还是可以正常使用 , 那么就不需要过度处理
  • m值解决 , 剩余Bella字段 , 采用了obf的混淆 , 我们明天再看 , 这篇文章会持续更新 , 估计一周内更新完成