常见漏洞验证121 条

文件下载鉴权检查

下载接口常见问题:文件 ID 越权、临时链接可猜测、路径参数穿越;检查鉴权与路径处理两条线。

下载接口为什么容易越权

下载接口通常用一个标识符指向文件(订单号、附件 ID、路径参数),如果服务端只用这个标识符取文件而不再核对当前会话是否有权访问,把 ID 换成别人的就能拿到他人文件。另一类问题是临时链接:链接本身带签名但可长期复用、或签名只校验了存在性没有绑定文件与有效期。检查分鉴权与路径处理两条线。

基本信息

检查对象附件下载、发票导出、报表生成、图片与文档预览接口
检查方法双账号交叉访问、参数变形(只读操作)
判定标准服务端按会话主体校验归属,越权请求被拒绝
修复方向以服务端对象引用取文件,临时链接带签名与时效

典型使用场景

  • 附件与资料下载接口的越权回归验证
  • 发票与对账单导出功能的权限核查
  • 临时链接与分享链接的安全设计评审
  • 云存储直链暴露风险评估
  • 为修复方提供统一的对象级授权改造建议

验证步骤

验证步骤
1. 账号 A 生成下载链接,记录完整 URL 与参数
2. 用账号 B 的会话访问同一链接,观察是否被拒绝
3. 对文件标识参数做变形(递增、编码、路径拼接),观察服务端处置(只读)
4. 检查临时链接的签名、有效期与是否与文件绑定
5. 记录接口、变形方式、响应差异与影响面(可读取的文件范围)

问题类型与判据

问题类型判据后果
对象越权换 ID 即可下载他人文件批量数据泄露
路径穿越路径参数可跳出允许目录读取服务器任意文件
临时链接复用链接长期有效且与账号无关链接外流后无法回收
直链暴露对象存储直链无签名可访问绕过应用层全部鉴权
批量下载接口支持一次取多个 ID越权一次获取大量数据
证据留存要克制:确认越权后立即停止,不要下载真实他人文件来做证明;用响应头差异或错误提示差异说明问题即可。
使用对象存储时推荐由应用签发短期有效的签名 URL,并把文件访问权限设为私有,避免对象名可枚举导致的批量下载。

易错点

  • 下载真实他人文件作为证据,越权获取数据,超出验证边界
  • 只测 ID 替换,漏掉短链、分享链接与二维码这类间接访问形态
  • 忽略路径参数穿越,服务端拼接路径时读取到目录外文件
  • 临时链接签名不绑定文件与有效期,链接外流后长期有效
  • 对象存储直链未签名且命名可枚举,绕过应用鉴权批量下载

数据来源与参考

  • OWASP WSTG WSTG-ATHZ-01
  • OWASP API Security Top 10(API1)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌