逆向 Facebook 接口 __dyn 参数

逆向 Facebook 接口 __dyn 参数

💡 原文中文,约2700字,阅读约需7分钟。
📝

内容提要

本文介绍了还原包含页面状态信息的动态数据 __dyn 参数的方法,通过全局搜索找到 StaticSiteData 模块,进而找到 jsmod_key 的赋值方式,最终得到了 __dyn 参数的值。同时,作者还介绍了如何收集模块的标识或者索引,并随机生成伪造参数。

🎯

关键要点

  • __dyn 是一个动态数据,包含页面状态信息。

  • 通过全局搜索找到 StaticSiteData 模块,__dyn 对应的键名是 jsmod_key。

  • jsmod_key 的赋值方式是 c('ServerJSDefine').getLoadedModuleHash()。

  • 使用 require 调用 ServerJSDefine 模块,验证结果是否与 __dyn 参数一致。

  • getLoadedModuleHash 调用 toCompressedString 函数,进一步查找其实现。

  • toCompressedString 的计算依赖于 $1 变量,但该变量为空数组。

  • 在网页模块中找到模块的标识或索引,筛选出有效的标识。

  • 通过正则表达式从 body 和 head 中提取模块标识,合并成一个数组。

  • 遍历数组,生成 bitMap,表示数字存在性。

  • 将 bitMap 压缩并转换为二进制数据。

  • 最后将二进制数据转换为 base64,得到 __dyn 参数的值。

  • 在收集模块标识时,可以随机生成伪造参数,长度在 115 到 265 之间。

🏷️

标签

➡️

继续阅读