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

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

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

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

[[378970]]

Syncing Contacts联系人同步特征

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

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

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

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

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

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

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

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

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

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漏洞引发数据和隐私泄露

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

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

同步联系人

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

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

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

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

 

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

 

 

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

 

限制

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

研究问题

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

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

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

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

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

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

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

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

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

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

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

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

TikTok HTTP消息签名

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

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

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

(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 包的一部分。

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

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

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

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

PoC

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

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

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

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

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

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

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

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

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

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

本文翻译自:

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

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

 

责任编辑:赵宁宁 来源: 嘶吼网
相关推荐

2023-08-31 19:11:07

2021-10-13 11:00:27

数据泄露漏洞信息安全

2011-08-12 10:15:46

2017-07-14 08:49:53

大数据隐私普及

2015-07-02 11:16:49

乌云

2013-04-26 13:58:38

2023-03-31 13:34:52

2020-08-24 09:25:19

数据泄露隐私数据攻击

2022-01-21 13:37:01

苹果MacSafari 浏览器

2022-09-08 11:14:01

黑客网络攻击网络安全

2023-11-30 18:25:36

2022-01-21 06:54:18

iPhoneiPadiOS

2013-06-06 18:05:58

搜狗输入法隐私泄露robots协议

2013-10-15 10:32:00

2017-05-12 12:30:30

2021-05-06 09:18:56

漏洞网络安全iPhone

2021-02-22 11:05:04

Clubhouse音频数据安全

2022-09-20 11:51:08

Uber网络攻击

2018-11-04 11:33:37

Safari信息泄露漏洞

2019-03-19 10:02:05

泄露隐私物联网安全物联网
点赞
收藏

51CTO技术栈公众号