返回写作

可预测 URL 与缺失鉴权:一次支付绕过案例复盘

旧站安全案例归档:资源地址遵循可推导的 36 进制规律,而读取接口没有校验访问者身份。

可预测 URL 与缺失鉴权:一次支付绕过案例复盘封面

这是一篇 2023 年旧站文章的整理版。案例中的业务使用短视频资源地址交付付费内容,但资源接口没有验证访问者身份,同时地址中的一段标识会随集数按 36 进制递增。

真正的问题是缺少授权判断

可预测地址只是发现问题的入口。即使 URL 完全随机,只要服务端没有确认“当前访问者是否购买了这一资源”,链接一旦泄露仍会失去保护。正确边界应当建立在服务端授权判断上。

36 进制规律暴露了资源关系

标识由 0-9a-z 组成,递增时具有普通进位规律。实现转换时需要保留原始位数,并在输出阶段补零。这个细节说明资源之间存在可以推导的关系,因此不能把地址不可见当作访问控制。

修复建议

  • 每次资源请求都校验用户、订单与资源的关系;
  • 使用短时签名 URL,并限制有效期与可用范围;
  • 避免在地址中暴露连续业务编号;
  • 对异常枚举和连续失败请求建立监控;
  • 测试只在明确授权范围内进行,并向站点方报告问题。

阅读 2023 年原文