挖洞经验 | 看我如何发现比特币赌博网站漏洞并收获$12000赏金
字数 1741 2025-08-18 11:37:24

比特币赌博网站漏洞挖掘技术分析

漏洞背景

本文分析的是比特币赌博网站bustabit的两个安全漏洞,这些漏洞的发现获得了总计$12,000的赏金。该网站的主要功能是让玩家自行决定投注金额和支付倍数,随着赔率和倍数上升,玩家需要在游戏强行终止前自行终止游戏才能胜出。

漏洞1:用户客户端的拒绝服务(DoS)漏洞(价值$2,000)

漏洞原理

  1. HTML链接处理机制

    • 网站聊天功能会自动将粘贴的链接转换为超链接,使用<a href=":1">:2</a>格式
    • 正常情况下,输入www.google.com会被转换为:https://www.bustabit.com/external?url=https://www.google.com
  2. 特殊构造的链接

    • 当输入www.bustabit.com/a时,由于是同源链接,不会添加external?url=前缀
    • 可以构造特殊格式:<a href="/a"> www.bustabit.com/a </a>
  3. 双斜线跳转攻击

    • 构造格式:<a href="//attacker.com/hacked"> www.bustabit.com//attacker.com/hacked </a>
    • 这种构造可以绕过HTML解析机制的Link Filter
  4. 关键DoS触发点

    • 发送包含特殊字符的链接:https://www.bustabit.com/%0t
    • JavaScript无法解析%0t,导致整个客户端崩溃
    • 崩溃状态会持续,即使刷新页面也无法恢复

攻击影响

  1. 攻击者可向任何下注用户发送此类消息,导致受害者客户端崩溃
  2. 可向主聊天窗口发送恶意链接,导致所有用户无法交互
  3. 游戏长时间不可玩,造成业务中断

PoC验证

参考视频:https://www.youtube.com/watch?v=jxBVZtB2z4Q

漏洞2:XSS和点击劫持(价值$10,000)

XSS漏洞原理

  1. JavaScript URI处理

    • 输入Javascript:alert(1)会跳转到:https://www.bustabit.com/external?url=Javascript:alert(1)
    • 这种处理方式直接导致了XSS漏洞
  2. iframe标记插入

    • 网站支持<iframe>标记插入
    • 可以构造点击劫持攻击页面

点击劫持攻击

  1. 构造格式:<iframe>标记配合"Click here to continue"字段
  2. 配合用户登录页面进行深度利用

攻击影响

  1. 会话窃取

    • Web接口会话存储在用户本地浏览器中
    • 攻击者可迷惑用户登录请求恶意外部链接
    • 间接窃取用户cookie和session信息
    • 利用窃取的cookie可登录用户账户
  2. 账户接管

    • 获取完整会话控制权
    • 可进行资金操作等敏感行为

漏洞挖掘方法论

  1. 深入研究特定功能

    • 不依赖自动化工具进行广谱扫描
    • 选择特定功能进行深度分析(如本文中的聊天功能)
  2. 输入验证测试

    • 测试各种特殊字符和编码的输入
    • 关注边界情况和异常处理
  3. URI处理机制分析

    • 研究网站如何处理外部和内部链接
    • 测试各种URI格式(包括javascript:协议)
  4. DOM操作安全

    • 分析前端JavaScript如何处理用户生成内容
    • 检查是否存在不安全的DOM操作

防御建议

  1. 输入过滤

    • 实施严格的输入验证和过滤
    • 对特殊字符和编码进行规范化处理
  2. 安全链接处理

    • 实现安全的链接转换机制
    • 避免直接使用用户提供的URI
  3. 内容安全策略(CSP)

    • 实施严格的CSP策略
    • 限制内联脚本和eval等危险功能
  4. XSS防护

    • 对输出进行适当的编码
    • 使用现代框架的自动编码功能
  5. 点击劫持防护

    • 使用X-Frame-Options头部
    • 实现Frame Busting代码

总结

本案例展示了通过深入研究特定功能发现高价值漏洞的方法。关键在于:

  1. 不依赖自动化工具的广谱扫描
  2. 选择看似简单的功能进行深度分析
  3. 理解应用程序的底层处理机制
  4. 测试各种边界情况和异常输入
  5. 将多个小问题组合成有实际影响的攻击链

这种深度研究方法往往能发现自动化工具无法检测到的复杂漏洞,在漏洞众测和渗透测试中具有更高的价值。

比特币赌博网站漏洞挖掘技术分析 漏洞背景 本文分析的是比特币赌博网站bustabit的两个安全漏洞,这些漏洞的发现获得了总计$12,000的赏金。该网站的主要功能是让玩家自行决定投注金额和支付倍数,随着赔率和倍数上升,玩家需要在游戏强行终止前自行终止游戏才能胜出。 漏洞1:用户客户端的拒绝服务(DoS)漏洞(价值$2,000) 漏洞原理 HTML链接处理机制 : 网站聊天功能会自动将粘贴的链接转换为超链接,使用 <a href=":1">:2</a> 格式 正常情况下,输入 www.google.com 会被转换为: https://www.bustabit.com/external?url=https://www.google.com 特殊构造的链接 : 当输入 www.bustabit.com/a 时,由于是同源链接,不会添加 external?url= 前缀 可以构造特殊格式: <a href="/a"> www.bustabit.com/a </a> 双斜线跳转攻击 : 构造格式: <a href="//attacker.com/hacked"> www.bustabit.com//attacker.com/hacked </a> 这种构造可以绕过HTML解析机制的Link Filter 关键DoS触发点 : 发送包含特殊字符的链接: https://www.bustabit.com/%0t JavaScript无法解析 %0t ,导致整个客户端崩溃 崩溃状态会持续,即使刷新页面也无法恢复 攻击影响 攻击者可向任何下注用户发送此类消息,导致受害者客户端崩溃 可向主聊天窗口发送恶意链接,导致所有用户无法交互 游戏长时间不可玩,造成业务中断 PoC验证 参考视频:https://www.youtube.com/watch?v=jxBVZtB2z4Q 漏洞2:XSS和点击劫持(价值$10,000) XSS漏洞原理 JavaScript URI处理 : 输入 Javascript:alert(1) 会跳转到: https://www.bustabit.com/external?url=Javascript:alert(1) 这种处理方式直接导致了XSS漏洞 iframe标记插入 : 网站支持 <iframe> 标记插入 可以构造点击劫持攻击页面 点击劫持攻击 构造格式: <iframe> 标记配合"Click here to continue"字段 配合用户登录页面进行深度利用 攻击影响 会话窃取 : Web接口会话存储在用户本地浏览器中 攻击者可迷惑用户登录请求恶意外部链接 间接窃取用户cookie和session信息 利用窃取的cookie可登录用户账户 账户接管 : 获取完整会话控制权 可进行资金操作等敏感行为 漏洞挖掘方法论 深入研究特定功能 : 不依赖自动化工具进行广谱扫描 选择特定功能进行深度分析(如本文中的聊天功能) 输入验证测试 : 测试各种特殊字符和编码的输入 关注边界情况和异常处理 URI处理机制分析 : 研究网站如何处理外部和内部链接 测试各种URI格式(包括javascript:协议) DOM操作安全 : 分析前端JavaScript如何处理用户生成内容 检查是否存在不安全的DOM操作 防御建议 输入过滤 : 实施严格的输入验证和过滤 对特殊字符和编码进行规范化处理 安全链接处理 : 实现安全的链接转换机制 避免直接使用用户提供的URI 内容安全策略(CSP) : 实施严格的CSP策略 限制内联脚本和eval等危险功能 XSS防护 : 对输出进行适当的编码 使用现代框架的自动编码功能 点击劫持防护 : 使用X-Frame-Options头部 实现Frame Busting代码 总结 本案例展示了通过深入研究特定功能发现高价值漏洞的方法。关键在于: 不依赖自动化工具的广谱扫描 选择看似简单的功能进行深度分析 理解应用程序的底层处理机制 测试各种边界情况和异常输入 将多个小问题组合成有实际影响的攻击链 这种深度研究方法往往能发现自动化工具无法检测到的复杂漏洞,在漏洞众测和渗透测试中具有更高的价值。