TikTok漏洞引发数据和隐私泄露

Check Point研究人员在TikTok中发现了一个安全漏洞,攻击者利用该漏洞可以窃取用户个人简介和绑定的手机号,用于下一步的攻击活动。

1月26日,Check Point研究人员发布文章称发现了TikTok移动客户端friend finder特征中的一个安全漏洞。攻击者利用该漏洞可以将个人简介信息与手机号就行关联,攻击者成功利用该漏洞可以建立一个用户与相关手机号的数据库。漏洞影响绑定了手机号或以手机号登陆的用户。

[[378970]]

Syncing Contacts联系人同步特征

TikTok移动客户端允许进行联系人同步,也就是说用户可以同步联系人到更容易发现注册了TikTok的朋友。同步过程有2个请求组成:

  • 上传联系人;
  • 同步联系人。

对用户通讯录中的每个联系人,TikTok都会构建一个包含以下3个属性的JSON:

  • Invited – “False”.
  • Name – 使用SHA 256算法哈希的值;
  • Phone number – 使用SHA 256算法哈希的值。

将JSON加入列表中,继续上传通讯录:

TikTok使用到https://api16-normal-c-alisg.tiktokv.com/aweme/v1/upload/hashcontacts 的HTTP请求来上传联系人。联系人会以contact 参数中的JSON 列表发送。

比如,单个联系人如下:

  • Name: Testing Tester
  • Phone number: +972555555555

TikTok会发送以下JSON 列表作为contact参数的值:

上传联系人到TikTok服务器的完整HTTP 请求如下所示:

同步联系人

上传联系人请求完成后,TikTok移动客户端就会发送一个sync 同步请求来提取所有与发送的手机号关联的个人简介。

发送到 https://api16-normal-c-alisg.tiktokv.com/aweme/v1/social/friend 的HTTP请求如下所示:

应用服务器响应含有个人简介列表、哈希的手机号、个人名字、唯一id、个人简介照片、个人简介特征等。

 

 

 

 

限制

上传和同步联系人请求每天、每用户、每个设备限制在500个以内。

研究问题

单个用户查询TikTok数据库是否会引发隐私问题?

(1) Step 1 – 创建设备列表(注册物理设备)

每次启动后,TikTok移动客户端都会执行设备注册过程来确保用户没有在设备之间进行切换。设备注册的过程是用到https://log-va.tiktokv.com/service/2/device_register 的请求来完成的:

根据HTTP请求中发送的数据,应用服务器会生成一个唯一的device_id token。该token是强制的,并且会应用生成的每个API请求一起发送给应用服务器。

(2) Step 2 – 创建不过期的session token列表

通过SMS登陆只能通过物理设备来进行,是通过发送给https://api16-normal-c-alisg.tiktokv.com/passport/mobile/sms_login_only 的HTTP 请求来实现的。请求的body部分包含有手机号和一次性验证码编码的参数。

服务器会验证数据,并生成唯一的X-Tt-Token token。此外,服务器还会设置会话的cookie。

研究人员分析发现会话cookie和X-Tt-Token 值的过期时间都是60天,也就是说8周内使用的cookie都是相同的。

TikTok HTTP消息签名

研究人员抓取了TikTok的HTTP 请求发现,TikTok移动客户端使用了消息签名机制来语法攻击者修改消息和请求的body部分。

消息签名机制要求服务器验证的X-Gorgon 和X-Khronos header,否则数据不能被请求。

(3) Step 3 – 绕过TikTok HTTP 消息签名

在拥有了device_id和X-Tt-Token token,以及2个月都不会过期的cookie后,就可以使用虚拟设备来替代真实的物理设备了。

研究人员在测试张使用了运行安卓6.0.1的Genymotion 模拟器,并安装了TikTok移动客户端。

研究人员进行动态分析发现TikTok移动客户端在后台会执行一个消息签名的服务。签名服务是com.bytedance.frameworks.baselib.network.http 包的一部分。

签名过程首先是一个一个方法开始:

攻击者可以使用Frida这样的动态分析框架来hook函数,修改函数的参数数据,然后对请求进行重新签名。因此,攻击者可以使用该服务来对修改后的请求进行签名,创建更新的X-Gorgon和 X-Khronos header值,并发送修改后的请求到TikTok应用服务器。

PoC

有了以上能力,就可以修改HTTP请求和对请求重新进行签名。研究人员写了一个Frida脚本来自动进行消息重新签名的过程,具体如下:

启动HTTP 服务器,监听4000 端口:

分析HTTP POST请求,并提取出请求签名的数据:

使用前述方法对修改后的请求重新签名:

返回更新的X-Gorgon 和 X- Khronos签名:

攻击的最终结果可以获取含有账号和手机号的数据库,引发数据和隐私泄露。

本文翻译自:

https://research.checkpoint.com/2021/tiktok-fixes-privacy-issue-discovered-by-check-point-research/

【责任编辑:赵宁宁 TEL:(010)68476606】

 

文章来源网络,作者:管理,如若转载,请注明出处:https://shuyeidc.com/wp/145187.html<

(0)
管理的头像管理
上一篇2025-03-10 12:29
下一篇 2025-03-10 12:31

相关推荐

  • jsp空间购买和交换数据空间怎么买,有哪些注意事项?

    购买JSP空间时,是否考虑过数据交换空间的性能?简米科技(2003年始创,23年行业沉淀)与酷番云(工信部一类增值电信全牌照)这类持牌自营机房的服务商,能确保数据交换的高效稳定,是值得优先选择的合作伙伴,为什么JSP空间需要搭配独立的数据交换空间从JSP应用特性看数据交换需求JSP基于Java技术,常用于企业级……

    2026-08-11
    0
  • 建网站用香港空间效果怎么样,香港空间稳定吗?

    建网站用香港空间,对于创建网站资产来说,核心价值在于免备案和全球带宽优势,尤其适合外贸、跨境电商和需要快速启动的项目,但你必须权衡国内访问延迟,并选择有资质的服务商以保证资产安全,香港空间的核心优势与适用边界免备案:节省时间就是节省成本国内服务器需要备案,通常需要10到20天,香港空间无需备案,域名解析后即可上……

    2026-08-11
    0
  • Java连接云数据库的方法是什么,如何操作

    Java连接云数据库的核心在于通过JDBC驱动,结合云服务商提供的连接地址、端口、数据库名及认证信息,配置安全策略(如SSL、IP白名单),即可实现稳定高效的远程数据库访问,基础准备:JDBC驱动与依赖管理连接云数据库前,需要确保开发环境具备对应的JDBC驱动,以最常见的MySQL为例,你需要引入mysql-c……

    2026-08-11
    0
  • 建网站公安联网备案必须使用数据码吗,备案流程是什么

    网站备案包括ICP备案和公安联网备案,两者缺一不可,公安联网备案必须使用服务商提供的数据码,选择持有合法资质的服务商是顺利通过备案的前提,为什么网站必须进行公安联网备案根据公安部《计算机信息网络国际联网安全保护管理办法》,网站开通后30日内必须到公安机关办理备案手续,未完成公安备案的网站,面临责令整改、关闭网站……

    2026-08-10
    0
  • 建一个企业网站大概需要多少钱?,怎么收费?

    建网站要多少钱,没有一个固定的数字,几百到几万都可能,但真正的“创建网站资产”绝不仅仅是初次投入的成本,而是基于长期稳定、合规和安全的持续性投入,其中核心取决于你选择了什么样的“地基”来承载你的业务,建站预算的构成与行业基准当你开始规划一个网站,最先面对的就是预算问题,一个常见的误区是只关注网站“看起来”的建造……

    2026-08-10
    0

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注