挖洞经验 | 看我如何免费获取价值€120的会员资格
字数 1134 2025-08-18 11:37:19

WeTransfer PLUS会员免费获取漏洞分析报告

漏洞概述

本报告详细分析了WeTransfer平台存在的一个安全漏洞,该漏洞允许攻击者通过构造特定请求,绕过正常支付流程,免费获取价值€120欧元的PLUS会员资格。漏洞涉及优惠券验证码泄露和请求构造不当等问题。

目标系统介绍

WeTransfer是荷兰一个基于云端的文件传输服务,主要特点包括:

  • 免费用户限制:最大传输2GB文件,保存时间两周
  • PLUS会员特权:更大传输容量(15GB)等,年费€120
  • 特色功能:无需注册、个性化上传设置、自动病毒扫描等

漏洞发现过程

初始探索

  1. 发现WeTransfer有针对.edu邮箱的教育优惠:高校学生可免费获取一年PLUS会员
  2. 测试使用伪造的.edu邮箱(testttsttststst7@mail.edu)注册教育优惠

关键发现

在发送教育优惠申请请求时:

POST /api/ui/education/coupons HTTP/1.1
Host: wetransfer.com
Content-Type: application/json
{"email":"testttsttststst7@mail.edu"}

服务器响应中直接返回了优惠券代码:

{
  "code": "9e0bca0a6d92"
}

漏洞本质:服务器本应通过邮件发送验证码,却在HTTP响应中直接泄露,且未对邮箱真实性进行验证。

漏洞利用方法

步骤1:获取优惠券代码

  1. /api/ui/education/coupons发送POST请求
  2. 使用任意伪造的.edu邮箱地址
  3. 从响应中提取优惠券代码

步骤2:构造会员注册请求

  1. 访问正常PLUS会员注册页面:https://wetransfer.com/plus
  2. 选择"Annual subscription"选项
  3. 填写个人信息并拦截请求

原始请求示例:

POST /api/ui/users HTTP/1.1
Host: wetransfer.com
Content-Type: application/json
{
  "country_code": "...",
  "vat_number": "...",
  "street_and_number": "...",
  ...其他注册信息...
}

步骤3:注入优惠券代码

在原始请求中添加"coupon_code":"获取的优惠码"字段:

{
  "country_code": "...",
  "vat_number": "...",
  "street_and_number": "...",
  "coupon_code": "5a9fa8cc51c3",
  ...其他注册信息...
}

步骤4:验证利用成功

成功响应特征:

{
  "order_completed": {
    "successful": true,
    "free": true
  },
  "redirect_to_url": "http://wetransfer.com/payment/completed?duration=year"
}

漏洞原理分析

  1. 优惠券生成机制缺陷

    • 教育优惠码生成后直接返回给客户端
    • 未验证邮箱真实性或建立邮箱与优惠码的绑定关系
  2. 优惠券验证缺陷

    • 优惠码可被用于任何账户注册
    • 服务器未检查优惠码的获取途径和使用条件
  3. 业务逻辑漏洞

    • 教育优惠流程与普通注册流程存在接口共用
    • 权限控制不严格,允许未经验证的优惠码使用

修复建议

  1. 优惠券生成后应立即与请求邮箱绑定,仅通过邮件发送
  2. 增加优惠券使用条件验证:
    • 验证优惠券获取邮箱与使用邮箱一致性
    • 验证优惠券类型与使用场景匹配
  3. 分离教育优惠与普通注册的API接口
  4. 实施优惠券使用频率限制

时间线

  • 2018.3.24:漏洞初报
  • 2018.3.25:WeTransfer响应
  • 2018.5.15:漏洞修复
  • 最终奖励:€500欧元

总结

本案例展示了业务逻辑漏洞的典型利用方式,攻击者通过分析正常业务流程,发现接口响应信息泄露和验证缺失问题,最终实现权限提升。开发人员应特别注意敏感信息(如验证码)的传输方式,并确保业务逻辑的完整验证。

WeTransfer PLUS会员免费获取漏洞分析报告 漏洞概述 本报告详细分析了WeTransfer平台存在的一个安全漏洞,该漏洞允许攻击者通过构造特定请求,绕过正常支付流程,免费获取价值€120欧元的PLUS会员资格。漏洞涉及优惠券验证码泄露和请求构造不当等问题。 目标系统介绍 WeTransfer是荷兰一个基于云端的文件传输服务,主要特点包括: 免费用户限制:最大传输2GB文件,保存时间两周 PLUS会员特权:更大传输容量(15GB)等,年费€120 特色功能:无需注册、个性化上传设置、自动病毒扫描等 漏洞发现过程 初始探索 发现WeTransfer有针对.edu邮箱的教育优惠:高校学生可免费获取一年PLUS会员 测试使用伪造的.edu邮箱( testttsttststst7@mail.edu )注册教育优惠 关键发现 在发送教育优惠申请请求时: 服务器响应中直接返回了优惠券代码: 漏洞本质 :服务器本应通过邮件发送验证码,却在HTTP响应中直接泄露,且未对邮箱真实性进行验证。 漏洞利用方法 步骤1:获取优惠券代码 向 /api/ui/education/coupons 发送POST请求 使用任意伪造的.edu邮箱地址 从响应中提取优惠券代码 步骤2:构造会员注册请求 访问正常PLUS会员注册页面: https://wetransfer.com/plus 选择"Annual subscription"选项 填写个人信息并拦截请求 原始请求示例: 步骤3:注入优惠券代码 在原始请求中添加 "coupon_code":"获取的优惠码" 字段: 步骤4:验证利用成功 成功响应特征: 漏洞原理分析 优惠券生成机制缺陷 : 教育优惠码生成后直接返回给客户端 未验证邮箱真实性或建立邮箱与优惠码的绑定关系 优惠券验证缺陷 : 优惠码可被用于任何账户注册 服务器未检查优惠码的获取途径和使用条件 业务逻辑漏洞 : 教育优惠流程与普通注册流程存在接口共用 权限控制不严格,允许未经验证的优惠码使用 修复建议 优惠券生成后应立即与请求邮箱绑定,仅通过邮件发送 增加优惠券使用条件验证: 验证优惠券获取邮箱与使用邮箱一致性 验证优惠券类型与使用场景匹配 分离教育优惠与普通注册的API接口 实施优惠券使用频率限制 时间线 2018.3.24:漏洞初报 2018.3.25:WeTransfer响应 2018.5.15:漏洞修复 最终奖励:€500欧元 总结 本案例展示了业务逻辑漏洞的典型利用方式,攻击者通过分析正常业务流程,发现接口响应信息泄露和验证缺失问题,最终实现权限提升。开发人员应特别注意敏感信息(如验证码)的传输方式,并确保业务逻辑的完整验证。