TikTok Web端协议算法分析
前言
文章仅供学习参考,请勿用于违法乱纪。接下来我们一起看看TikTok的web签名算法,X-Bogus & X-Gnarly。
网址:749K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6%4N6%4N6Q4x3X3g2@1K9h3E0@1L8$3E0Q4x3X3g2U0L8$3#2Q4x3V1k6Q4y4o6m8E0j5h3E0W2j5h3W2Y4M7X3g2S2N6r3q4Y4j5h3W2F1y4o6M7`.
接口: /api/post/item_list/ (达人作品列表)
SDK文件路径:/obj/tiktok-web-tx/webmssdk/2.0.0.447/webmssdk.js
这个插桩点和数据加载流程和国内DY基本都是一样的。
X-Bogus
这个签名是老演员了,一开始就校验上了。该算法入参是:query, user_agent, body 区分GET/POST请求,如果在log里发现了'd41d8cd98f00b204e9800998ecf8427e' 这个就是空值的md5值,也就表示GET请求。首先分别进行算法签名2次得到字节数组,取其最后两位元素,后续持续拼接为一个21位的字节数组,最后魔改码表('Dkdpgh4ZKsQB80/Mfvw36XI1R25-WUAlEi7NLboqYTOPuzmFjJnryx9HVGcaStCe=')生成。其中,参与运算的还有canvas值,时间戳,密钥数组,rc4流加密等。
X-Gnarly
长度:268/ 300/ 324(最新)增加数据列表长度,即可增加X_Gnarly长度 暂时都可以使用。
X_Gnarly
MxESwhNLFU-YEm8UJQE9MFkqSv1tYBzQSumsUgvx2gkBDuyDoOtYgjfevQLRBYiqFDVA4JlRGUmgNb-taI6XlLBcPfok3XhdLeKr98A2N2gyRYbXaKtgZQ2QK4UHWPVnM312BChLi4o99N-aE5PEt4EIYVkiGCK2-GbOjzw0rWemJyuKFUev2e-hvqXXBp3jIzozFjMuiAkesNXWDB31mOPlIlcv1EsmT6qcZuvJVf/zKrdZXTbBddkZ3TxKhHs5JxwZrfIRjNdIKhy62e0Zom/UOrtMk-O4wfmgb-SS61-zj0e9pTwYeN7M4bXkNe1ECrA=
'5.1.3', '2.0.0.447'
通过解密算法解出明文参数:
// 列表长度 15
[
0, // 固定
65, // 变化
14, // 变化
"acb9ceabab0b8cfcf0f28be40ffeeae4", // query md5值
"d41d8cd98f00b204e9800998ecf8427e", // body md5值 GET默认body = ''
"f18b5213b6de2490ec9be218b0f025b0", // user-agent md5值
1763107246, // 时间戳 动态因素
2363850128, // canvas值
1696407985, // 随机数 时间相关 测试发现 可以固定范围
"5.1.3", // 算法版本 最开始是5.0
"2.0.0.447", // webmssdk/2.0.0.447 js文件版本
1, // 固定
// 以下是新加的元素 没啥影响
2, // 变化
1, // 变化
4312084 // 变化
]
可以看到其和X-Bogus,A-Bogus算法都没啥区别,相同的算法思路设计。
接着继续聊X-Gnarly算法,数组准备好了后会对整体数组进行xor计算,xor初始值默认值是0,后续根据数据类型进行不同处理。添加xor元素到数组里,接着对数组进行排序打乱,这里也有对应算法。最后根据不同的数据类型添加数组里不同元素的索引和值信息,多个分支不同处理流程。然后就是一个魔改的流加密算法了,需要清楚密钥是什么。该X-Gnarly对应的密钥如下,即可唯一确定目标参数。
[
"0.16676794365048409",
"0.09791544009931386",
"0.7086712564341724",
"0.06493830471299589",
"0.6804928914643824",
"0.671537404647097",
"0.3154390335548669",
"0.796996020944789",
"0.987317256629467",
"0.5382072266656905",
"0.21200472488999367",
"0.0768559209536761"
]
最后这里的处理和日志上报参数strData相得益彰,最终魔改码表('u09tbS3UvgDEe6r-ZVMXzLpsAohTn7mdINQlW412GqBjfYiyk8JORCF5/xKHwacP=')。
结语
[培训]科锐软件逆向54期预科班、正式班开始火爆招生报名啦!!!
最后于 2天前
被kanxue编辑
,原因: 仅技术交流